java - FileReader 找不到我的文本文件

标签 java filereader java-io

我有一个简单的文本文件,但由于某种原因找不到它。我没有发现代码有任何问题,因为我是从网站上获得的,而且我开始认为我没有将文本文件放在正确的位置。有什么建议吗?

代码:

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"));

这是项目结构

enter image description here


尝试下面的代码找出它指向文件 icecreamTopping.txt 的位置。

 File f=new File("icecreamTopping.txt");
 System.out.println(f.getAbsolutePath());

获取到绝对路径后,将文件放在那里即可。


--编辑--

根据您最后的评论,将 icecreamTopping.txt 文件直接放入项目 RankFavorites 中,如下图所示,它一定会解决您的问题。

enter image description here

关于java - FileReader 找不到我的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22585621/

相关文章:

java - 当我在上传帖子时尝试获取 key 时,我从 push() 得到了错误的 postKey

java - Java 字节数组转十进制

javascript - 使用 FileReader() 读取文件以从图像文件生成 md5 哈希字符串的正确方法?

python - 如何在python中读取json对象

java - BufferedWriter:在文件关闭之前写入文件

java - SequenceInputStream 构造函数仅选择第一个输入流并忽略其余部分

java - 在Android Studio中生成失败

java - 学习多线程Java爬虫的好起点

java - 逐行读取文件夹中的所有.txt 文件

java - 从文件中读取前 5 行,然后读取其余行