我有一个简单的文本文件,但由于某种原因找不到它。我没有发现代码有任何问题,因为我是从网站上获得的,而且我开始认为我没有将文本文件放在正确的位置。有什么建议吗?
代码:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.nio.file.Path;
import java.nio.file.Paths;
public class MainFavorites {
public static void main(String[] args) throws IOException {
/**
* finds pathway to the file
*/
// File file = new File("icecreamTopping.txt");
// System.out.println(file.getCanonicalPath());
BufferedReader reader = null;
ArrayList <String> myFileLines = new ArrayList <String>();
try {
String sCurrentLine;
reader = new BufferedReader(new FileReader("icecreamTopping.txt"));
while ((sCurrentLine = reader.readLine()) != null) {
//System.out.println(sCurrentLine);
myFileLines.add(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
System.out.print(e.getMessage());
} finally {
try {
if (reader != null)reader.close();
} catch (IOException ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
}
int numElements = myFileLines.size();
System.out.println ("there are n lines in the file:" + numElements);
for (int counter = numElements-1; counter >= 0; counter--) {
String mylineout = myFileLines.get(counter);
System.out.println (mylineout);
}
}
}
文件内容:
1- Blueberry
2- Banana Buzz
3- Cookie Batter
我的堆栈跟踪是这样的:
java.io.FileNotFoundException: C:\Users\homar_000\workspace\RankFavorites\icecreamTopping.txt (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at MainFavorites.main(MainFavorites.java:28)
最佳答案
替换下一行
reader = new BufferedReader(new FileReader("icecreamTopping.txt"));
与
reader = new BufferedReader(new FileReader("resources/icecreamTopping.txt"));
并将文件放在与 src 文件夹平行的 resources 文件夹下。
示例代码:
从资源文件夹中读取文件 abc.txt
reader = new BufferedReader(new FileReader("resources/abc.txt"));
这是项目结构
尝试下面的代码找出它指向文件 icecreamTopping.txt
的位置。
File f=new File("icecreamTopping.txt");
System.out.println(f.getAbsolutePath());
获取到绝对路径后,将文件放在那里即可。
--编辑--
根据您最后的评论,将 icecreamTopping.txt
文件直接放入项目 RankFavorites
中,如下图所示,它一定会解决您的问题。
关于java - FileReader 找不到我的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22585621/