You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java使用BufferedReader读取同项目不同包文本文件提示找不到文件错误如何解决

问题产生原因
  • 你当前使用的FileReader是基于操作系统文件系统路径读取文件的,你传入的/park_mp1/src/park/DATA/Data1.txt路径以/开头,会被识别为操作系统根目录下的绝对路径,而非你当前项目内的路径,因此会触发找不到文件的错误。
  • Eclipse运行Java程序时,默认工作目录为项目的根目录(即park_mp1文件夹所在层级),直接写相对路径时是相对于这个工作目录解析,而非相对于你代码所在的包目录解析。
  • 若后续你将项目打包为Jar包,src目录下的资源文件会被打包进Jar包内,不再是独立的文件系统文件,此时用FileReader无论如何都无法直接读取到这类资源。
解决方案

这里提供两种常用的可行方案,你可以根据使用场景选择:

方案1:使用相对于Eclipse工作目录的路径

仅适用开发阶段读取项目源目录下的文件,不需要适配Jar包运行场景:
直接将文件路径修改为相对于项目根目录的相对路径即可,修改后代码如下:

package park.FILEMOD;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileModifier {

    public static void main(String[] args) throws IOException{
        // 路径从项目根目录开始写,不需要开头的/
        FileReader in = new FileReader("src/park/DATA/Data1.txt");
        BufferedReader br = new BufferedReader(in);

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
        in.close();
    }
}

方案2:使用类加载器从ClassPath读取资源

兼容性更强,开发阶段和打包成Jar包后都可以正常使用,推荐优先使用该方案:

package park.FILEMOD;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;

public class FileModifier {

    public static void main(String[] args) throws IOException{
        // 路径开头加/表示从ClassPath根目录开始查找资源
        BufferedReader br = new BufferedReader(new InputStreamReader(
            FileModifier.class.getResourceAsStream("/park/DATA/Data1.txt"),
            StandardCharsets.UTF_8
        ));

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
        br.close();
    }
}

注意:使用该方案需要保证Data1.txt会被编译到输出的ClassPath目录中,Eclipse默认会将src目录下的非Java文件复制到编译输出目录,如果没有复制可以右键项目选择Properties -> Java Build Path -> Source,确认Excluded配置项没有屏蔽txt格式的文件。

内容的提问来源于stack exchange,提问作者dylanpark01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:39:03