我正在尝试用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也找不到该文件。
我不知道该怎么办,我已经尝试了很多东西。
有人可以帮我吗。
这里有两件事可以尝试:
使用完整路径,而不是使用相对路径,请使用完整路径,例如类似于"/Users/BlueDragon709/Desktop/test.txt"
而不是"/test.txt"
如果失败,请检查文件权限。
[当您当前正在使用文件时,在实例化扫描程序之前,您不会尝试访问它,因此在您碰到该行代码之前,它不会失败。
Resources(Class.getResource)通常不能用File
处理,它们是类路径上的文件,可能打包为.jar文件。您可以按如下方式获得读者:
new InputStreamReader(getClass().getResourceAsStream("/test.txt"), StandardCharsets.UTF_8)
以上使用资源的InputStream。如您所知文件的字符集,请为阅读器指定它。
它的工作是与您的IDE设置相结合的工作目录问题。