Java FileReader的问题

时间:2011-06-07 13:47:27

标签: java text-files filereader

你好,我的代码中有这个

File file = new File("words.txt");
    Scanner scanFile = new Scanner(new FileReader(file));
    ArrayList<String> words = new ArrayList<String>();

    String theWord;    
    while (scanFile.hasNext()){
        theWord = scanFile.next();
        words.add(theWord);
    }

但出于某种原因,我得到了一个

  

java.io.FileNotFoundException

我将words.txt文件放在与所有.java文件相同的文件夹中

我做错了什么?谢谢!

5 个答案:

答案 0 :(得分:6)

提示:将此行添加到您的代码中......

System.out.println(file.getAbsolutePath());

然后将该路径与文件实际位置进行比较。问题应该立即显而易见。

答案 1 :(得分:5)

该文件应位于执行应用程序的目录中,即工作目录

答案 2 :(得分:4)

通常情况下,使用您的代码打包数据文件是一个好主意,但是使用java.io.File来阅读它们是一个问题,因为很难找到它们。解决方案是使用getResource()中的java.lang.ClassLoader方法打开文件流。这样,ClassLoader会在存储代码的位置查找您的文件,无论在哪里。

答案 3 :(得分:3)

尝试:

URL url = this.getClass().getResource( "words.txt" );
File file = new File(url.getPath());

答案 4 :(得分:2)

您尚未指定绝对路径。因此,路径将被视为相对于流程的当前工作目录的路径。通常这是您启动Main-Class的目录。

如果您不确定工作目录的位置,可以使用以下代码段打印出来:

System.out.println(System.getProperty("user.dir"));

解决问题需要在原始路径中添加必要的目录,以找到该文件。