我正在尝试在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()查找文件路径,并且它指定了我一直在寻找的相同路径,但编译器找不到该文件。有帮助吗?
答案 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"));
并且控制台打印出存储在文件中的文本。