特定的FileNotFound异常

时间:2018-01-10 00:23:17

标签: java io

我已经尝试了几个小时了,我似乎无法理解为什么或如何获得FileNotFound例外。

我正在尝试使用一个名为rating.txt的文件,我需要读取和写入 我的目录如下所示:

enter image description here

我的代码就是这个

  public String getRating()
{
    String re = "";
    try {
        FileReader fileReader = new 
     FileReader("app/src/main/files/rating.txt");
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        re = bufferedReader.readLine();
        bufferedReader.close();
    }
    catch(IOException e)
    {
        e.printStackTrace();
        System.out.println("rating file not found while reading");
    }
   return re;
}

2 个答案:

答案 0 :(得分:0)

请使用以下方法检查您的工作目录:

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

我认为您的目录从app开始,因此您应该将路径更改为src/main/files/rating.txt

答案 1 :(得分:0)

我不知道您是如何尝试运行代码的。但正如我所看到的那样,您正在使用IntelliJ IDEA和IntelliJ,当您尝试运行一段代码时,正在运行的应用程序的当前工作目录是您的模块的输出文件夹。在您的情况下,当您使用gradle时,所有类都将编译到build文件夹中。因此,您应首先找到文件放在build文件夹下的位置,然后更改代码,以便它尝试查找相对于build文件夹的文件。

重要提示:如果您想在项目中使用某种文本文件,按照惯例,您应将其放在resources文件夹旁边的java文件夹中。 java插件会自动查找此类文件夹并将其内容复制到build文件夹。

所以你的项目结构应该是这样的:

app
|_ build
|_ src
   |_ java
   |_ resources 
      |_ files <- put your txt file here

然后在您的代码中,您可以这样阅读:

FileReader fileReader = new 
     FileReader("files/rating.txt");