读取java中的路径时出错

时间:2014-09-11 13:12:40

标签: java string file-io bufferedreader filereader

我正在尝试在java中读取一个文本文件,但我有这个恼人的FILENOTFOUND EXCEPTION:

try {
    BufferedReader br = new BufferedReader (new FileReader("/home/asad/workspace/MyFirstProject/HelloWorld.txt"));
    while ((reader = br.readLine())!= null);
    System.out.print(reader);
    br.close();
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

这是最简单的代码,应从指定路径读取文本文件名HelloWorld,应将其存储在字符串“reader”中并在控制台上显示其输出,但编译器在查找文件时遇到问题。

奇怪的是,我尝试使用getCanonicalPath()查找文件路径,并且它指定了我一直在寻找的相同路径,但编译器找不到该文件。有帮助吗?

3 个答案:

答案 0 :(得分:0)

在while循环中,空语句;一直执行到文件末尾。

if ((reader = br.readLine())!= null) { // Not ;
    System.out.println(reader); // Not print, as reader has "\r\n" removed
}
br.close();

使用if代替通常的while来检索第一行。

FileNotFoundException可能是真的。要查找您可以在终端中执行的拼写错误:

cat /home/asad/workspace/MyFirstProject/HelloWorld.txt
ls /home/asad/workspace/MyFirstProject
ls /home/asad/workspace

很可能应该是" MyfirstProject"左右。

答案 1 :(得分:0)

尝试在代码前检查此测试:

File file = new File("/home/asad/workspace/MyFirstProject/HelloWorld.txt");
if( file.exists() ) {
    System.out.println("File exists!");
} else {
    System.out.println("File not existst!");
}

如果您收到FileNotFoundException,则文件不在此本地化或文件名不正确。

答案 2 :(得分:0)

我刚发现我的代码问题, 通过从打印解决方案的路径中省略.txt。

我改变了

的代码
BufferedReader br = new BufferedReader (new FileReader("/home/asad/workspace/MyFirstProject/HelloWorld.txt"));

BufferedReader br = new BufferedReader (new FileReader("/home/asad/workspace/MyFirstProject/HelloWorld"));

并且控制台打印出存储在文件中的文本。