12

我只是想逐行读取文件。这本来是很简单的,但我就是做错了!

String fileName = "C:/Users/Diogo/Desktop/Krs_Grafo/Graph.txt";
FileReader file = new FileReader(fileName);
BufferedReader inputStream = new BufferedReader(file);
System.out.println(inputStream.readLine());

我不断收到错误:

Exception in thread "main" java.io.FileNotFoundException: C:\Users\Diogo\Desktop\Krs_Grafo\Graph.txt (O sistema não pode encontrar o arquivo especificado)
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 krs_grafo.Krs_Grafo.main(Krs_Grafo.java:51)
Java Result: 1

系统找不到文件,但我确定它在那里!我在 Windows 7 上使用 Netbeans 7.0。

有什么建议么?

正如评论中所说,它正在搜索“Graph”而不是“Graph.txt”。这是来自我之前尝试不使用扩展名的执行。所以,我编辑它是连贯的。它仍然不起作用。

4

4 回答 4

10

这里的问题是文件名实际上是“ Graph.txt.txt ”,因为扩展名被隐藏了,所以我看不到。

感谢用户“Michael Brewer-Davis”在评论中询问“给定目录中 cd 和 dir 的输出”。

还要指出 / 和 \\ 都可以正常工作。

于 2011-07-01T23:02:22.220 回答
0
  1. 正如 JB Nizet 在评论中指出的那样,错误消息暗示程序试图打开一个“图形”文件(不是路径也没有扩展名),该文件与您向我们展示的代码不兼容。您确定该错误消息来自运行该代码吗?Didi 你尝试调试它(一步一步)?

  2. Windows 7的?也许您更愿意在一些“不错的”目录中设置一个工作目录,例如C:\wk\或类似的东西,这样您就可以排除权限问题并拥有更好更短的路径。

  3. 关于反弹的一些答案的建议是不相关的。正斜杠在 Windows 中的 Java 中运行良好。无需担心。

于 2011-07-01T14:11:56.770 回答
0

您需要添加 try catch 块。

public static void main(String...args){
     String fileName = "C:/Users/DY.Liu/Desktop/Krs_Grafo/Graph.txt";
    try{
        FileReader file = new FileReader(fileName);
        BufferedReader inputStream = new BufferedReader(file);
        System.out.println(inputStream.readLine());
    } catch (FileNotFoundException e){
        e.printStackTrace();

    } catch (IOException e){

    }
}
于 2011-07-01T15:35:47.617 回答
0

我对 java.io.FileNotFoundException 有类似的问题。我从电子邮件中下载了一个项目,解压缩并存储在我的桌面上,而不是导致 FileNotFoundException 的工作区。

为了获得正确的路径,我复制了导入项目时显示的确切路径。这解决了我的问题。

于 2012-05-30T16:01:01.493 回答