【问题标题】:What's wrong with this code in java that uses FileReader?使用 FileReader 的 java 中的这段代码有什么问题?
【发布时间】:2016-04-21 21:00:58
【问题描述】:

我一直在尝试了解FileReader,因此想对其进行测试。我创建了一个类,它的构造函数接受一个字符串(文件名)并创建一个文件,然后从中读取,然后将第一个字符打印出来,但我的代码不起作用并显示错误。这是我的java代码。

package test_3;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Files {
    public Files(String s) throws FileNotFoundException, IOException{
        File f = new File(s);
        FileReader fr = new FileReader(f);
        System.out.println(fr.read());
    }

    public static void main(String args[]) throws FileNotFoundException,   IOException{
        Files myFile = new Files("input.txt");
    }
}

这是错误信息

Exception in thread "main" java.io.FileNotFoundException: input.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileReader.<init>(Unknown Source)
    at test_3.Files.<init>(Files.java:11)
    at test_3.Files.main(Files.java:16)

【问题讨论】:

  • 系统找不到指定的文件。因此文件"input.txt" 与类Files 不在同一目录中。文件在哪里?
  • 另外:当它起作用时,你会想在使用它后关闭fr - 你可能会发现System.out.println(fr.read()); 的输出不是你所期望的(它会是一个整数,而不是一个字符)。
  • @Tunaki 类 Files 所在目录与此无关。
  • @Kainix 我试过了,但在问题发布后的前 10 分钟我做不到。

标签: java file-io filereader


【解决方案1】:

因为找不到文件。你应该做的是获取java正在寻找文件的路径,就像这样。

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

然后将“input.txt”放入该目录(运行该代码时打印的目录)。

或者,使用 input.txt 的完整绝对路径

【讨论】:

  • 非常感谢。我将我的文件放在我实际必须的路径中的一级,因此我收到了这个错误。谢谢。
  • 是的,谢谢。由于网站的时间限制,我一开始没能做到。
猜你喜欢
  • 2023-03-09
  • 2018-07-05
  • 1970-01-01
  • 2015-04-25
  • 2018-09-09
相关资源
最近更新 更多