在Java构造函数中导入文本文件
我不确定这些问题是从哪里产生的。我有两个类,一个叫做testFriends类,另一个叫做GUIapp类。在每个类中,我的目标是导入文件以供使用。在testFriends类中,我在main方法中导入该文件,它对其进行解析,所有操作都很好。在我的GUIapp类中,我尝试做同样的事情,但是在构造函数方法中导入它,它告诉我文件不存在。这两个文件类位于同一个src文件夹中,我正在使用:在Java构造函数中导入文本文件,java,Java,我不确定这些问题是从哪里产生的。我有两个类,一个叫做testFriends类,另一个叫做GUIapp类。在每个类中,我的目标是导入文件以供使用。在testFriends类中,我在main方法中导入该文件,它对其进行解析,所有操作都很好。在我的GUIapp类中,我尝试做同样的事情,但是在构造函数方法中导入它,它告诉我文件不存在。这两个文件类位于同一个src文件夹中,我正在使用: BufferedReader in = new BufferedReader(new FileReader(inputF
BufferedReader in = new BufferedReader(new FileReader(inputFile));
其中输入文件只是一个字符串“friends.txt”
以下是两个类:
//This class works
public class temp {
public static void main(String[] args) throws ParseException {
try {
System.out.println("hey");
BufferedReader in = new BufferedReader(new FileReader("friends.txt")); //create string buffer for reading
String line = in.readLine(); //reading first line
System.out.println(line);
} catch (IOException e) {
System.out.println("Fail Import.");
}
}
}
//////////The one below doesn't...
public class GUIapp extends JApplet{
//** PANEL **//
private JPanel outerPanel;
//** Button **//
private JButton button1;
/*
* Constructor for Getting all the friends set up
*/
public GUIapp() throws ParseException, FileNotFoundException{
BufferedReader in = new BufferedReader(new FileReader("friends.txt"));//Error Line
}
/*
* Create Stuff
*/
public void createStuff() {
outerPanel = new JPanel(); //create outer panel
button1 = new JButton("Click Me");
outerPanel.add(button1,BorderLayout.SOUTH);
}
/*
* Initialize Stuff
*/
public void init(){
createStuff(); //initialize create stuff
this.add (outerPanel);
}
}
你知道为什么当两者都在同一个目录下工作时,一个可以读取,而另一个不能读取吗
谢谢
编辑:下面是我运行GUIapp类时引发的异常:
java.io.FileNotFoundException: friends.txt (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at java.io.FileReader.<init>(FileReader.java:41)
at GUIapp.<init>(GUIapp.java:50)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:807)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
at sun.applet.AppletPanel.run(AppletPanel.java:368)
at java.lang.Thread.run(Thread.java:680)
java.io.FileNotFoundException:friends.txt(没有这样的文件或目录)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:120)
位于java.io.FileInputStream。(FileInputStream.java:79)
位于java.io.FileReader。(FileReader.java:41)
在GUIapp上。(GUIapp.java:50)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
位于java.lang.Class.newInstance0(Class.java:355)
位于java.lang.Class.newInstance(Class.java:308)
在sun.applet.AppletPanel.createApplet(AppletPanel.java:807)中
位于sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
运行(AppletPanel.java:368)
运行(Thread.java:680)
在运行时,小程序没有要查找的文件。确保文件在运行时存在
请将此方法添加到代码中,以便获取文件
public void readFile(String fileToRead){
String line;
URL url = null;
try{
url = new URL(getCodeBase(), fileToRead);
}
catch(MalformedURLException e){}
try{
InputStream in = url.openStream();
BufferedReader bf = new BufferedReader(new InputStreamReader(in));
// your business logic here
}
catch(IOException e){
e.printStackTrace();
}
}
/*
*用于设置所有好友的构造函数
*/
有关更多详细信息,请查看来自Javase的这些图像
要创建使用imgDir下的a.gif图像文件的图像对象,小程序可以使用以下代码:
Image image = getImage(getCodeBase(), "imgDir/a.gif");
请指定启动小程序的方式/位置。根据您的回答,您可能想阅读。这是我第一次做GUI设计。我通过“init”方法初始化小程序,该方法调用createStuff方法。不,我的意思是使用什么工具来启动小程序?如果你在浏览器中查看,一定要查看我上面提到的链接。您可能还是想签出它。如果“当前类路径”相同,请在这两种情况下兼容它们。@user1234440小程序假定通过网络/服务器部署,并且通常在浏览器中振动。如果要运行桌面应用程序,最好使用
JFrame
之类的工具。除此之外,它还有自己的窗口,不会像applet那样受到安全问题的困扰。如果小程序显示在小程序视图中,您还可能会发现主方法没有执行(小程序查看器将直接加载小程序)。文件存在,只是一个可以读取,而另一个不能读取。小程序以另一种方式工作。两者之间存在差异both@user1234440这就是我所说的java.io.FileNotFoundException:friends.txt(没有这样的文件或目录)
Image image = getImage(getCodeBase(), "imgDir/a.gif");