在Java构造函数中导入文本文件

在Java构造函数中导入文本文件,java,Java,我不确定这些问题是从哪里产生的。我有两个类,一个叫做testFriends类,另一个叫做GUIapp类。在每个类中,我的目标是导入文件以供使用。在testFriends类中,我在main方法中导入该文件,它对其进行解析,所有操作都很好。在我的GUIapp类中,我尝试做同样的事情,但是在构造函数方法中导入它,它告诉我文件不存在。这两个文件类位于同一个src文件夹中,我正在使用: BufferedReader in = new BufferedReader(new FileReader(inputF

我不确定这些问题是从哪里产生的。我有两个类,一个叫做testFriends类,另一个叫做GUIapp类。在每个类中,我的目标是导入文件以供使用。在testFriends类中,我在main方法中导入该文件,它对其进行解析,所有操作都很好。在我的GUIapp类中,我尝试做同样的事情,但是在构造函数方法中导入它,它告诉我文件不存在。这两个文件类位于同一个src文件夹中,我正在使用:

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");