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

指定正确路径仍遇Java FileNotFoundException问题求助

Java FileNotFoundException 问题解决(文件与类同目录仍找不到)

问题描述

文件与Test类处于同一目录,但使用相对路径"aaa.txt"创建File对象时,始终触发FileNotFoundException,相关代码如下:

File myFile = new File("aaa.txt");

boolean isExisting = myFile.exists();
System.out.println(isExisting);

try {
  FileReader f = new FileReader(myFile);
  BufferedReader bf = new BufferedReader(f);

  String line = bf.readLine();

  while (line != null) {
    System.out.println(line);
    line = bf.readLine();
  }

  bf.close();

} catch (FileNotFoundException e) {
  System.out.println("Can't find file");

  // e.printStackTrace();

} catch (IOException e) {
  System.out.println("Error");
}

未捕获异常时的报错信息:

java.io.FileNotFoundException: aaa.txt (找不到指定文件)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.io.FileReader.<init>(FileReader.java:75)
at Testing/Packageeee.Test.main(Test.java:29)

核心原因

你误解了相对路径的基准:File类的相对路径是基于程序运行时的工作目录,不是类文件所在的包目录。
比如用IDE运行时,工作目录默认是项目根目录(和src文件夹同级),而你的aaa.txt放在Packageeee包目录下,程序会去项目根目录找这个文件,自然找不到。

可以通过以下代码验证当前工作目录:

System.out.println(System.getProperty("user.dir"));

解决方法

方法1:调整文件位置(最简单)

直接把aaa.txt移到项目根目录(和src文件夹同一层级),这样相对路径就能正确匹配。

方法2:用类加载器读取(推荐,适配打包场景)

如果要让文件和类文件放在一起,使用类加载器获取资源,这种方式无论IDE运行还是打包成JAR都能正常读取:

try {
  // 通过类加载器获取同目录下的文件输入流
  InputStream is = Test.class.getResourceAsStream("aaa.txt");
  BufferedReader bf = new BufferedReader(new InputStreamReader(is));

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

  bf.close();
} catch (FileNotFoundException e) {
  System.out.println("Can't find file");
} catch (IOException e) {
  System.out.println("Error");
}

方法3:使用绝对路径(不推荐,移植性差)

直接写死文件的绝对路径,比如:

File myFile = new File("C:/你的项目路径/Testing/Packageeee/aaa.txt");

这种方式换环境就需要修改路径,不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:42:20