文件可以找到文件,但FileReader找不到

问题描述 投票:0回答:2

我正在尝试用Java读取.txt文件。我将文件放在项目的根文件夹中。

当我这样做时:

URL url = getClass().getResource("/test.txt");
System.out.println(url);
File file = new File(url.getPath());
System.out.println(file.getAbsolutePath());

我得到正确的路径。但是当我想在FileReader中使用File时,找不到文件。

Scanner scan = new Scanner(new BufferedReader(new FileReader(file)));

即使我将测试文件放在桌面上并使用绝对路径,FileReader也找不到该文件。

我不知道该怎么办,我已经尝试了很多东西。

有人可以帮我吗。

java file filereader
2个回答
0
投票

这里有两件事可以尝试:

  1. 使用完整路径,而不是使用相对路径,请使用完整路径,例如类似于"/Users/BlueDragon709/Desktop/test.txt"而不是"/test.txt"

  2. 如果失败,请检查文件权限。

[当您当前正在使用文件时,在实例化扫描程序之前,您不会尝试访问它,因此在您碰到该行代码之前,它不会失败。


0
投票

Resources(Class.getResource)通常不能用File处理,它们是类路径上的文件,可能打包为.jar文件。您可以按如下方式获得读者:

new InputStreamReader(getClass().getResourceAsStream("/test.txt"), StandardCharsets.UTF_8)

以上使用资源的InputStream。如您所知文件的字符集,请为阅读器指定它。

它的工作是与您的IDE设置相结合的工作目录问题。

© www.soinside.com 2019 - 2024. All rights reserved.