3 回答
TA贡献2036条经验 获得超8个赞
对于要读取文件(几乎任何文件)的应用程序,您有两种方法可以这样做:
第一种方法
提供完整路径。示例:/home/oOVOo/QNA.txt。如果您运行的是 Windows:D:/folder/QNA.txt。/
在 Windows 上指定路径时使用是可以的。JVM 读取路径并根据底层操作系统决定使用哪个分隔符。
第二种方法
根据应用程序看到的当前工作目录提供相对路径。意思是,如果您从名为“foo”的目录或文件夹运行应用程序,则文本文件必须在该目录中才能提供相对路径,即文件名QNA.txt
。
希望你觉得这个答案有用。
TA贡献1821条经验 获得超4个赞
当您执行程序时,Java 通过使用当前工作目录($PWD
在 bash 中)解析相对路径(即 QNA.txt )。
您需要将工作目录更改为包含 Java 文件的文件夹的工作目录
如果找不到资源
Class::getResourceAsStream
,您也可以使用which 可能会返回null
。
您可以阅读 的 javadocgetResourceAsStream
以解释它的作用和方式。
InputStream is = YourClass.class.getResourceAsStream("QNA.txt");
if (null != is) {
try (InputStreamReader isr = new InputStreamReader(is, StandardCharsets.UTF_8);
BufferedReader reader = new BufferedReader(isr)) {
...
}
}
TA贡献1810条经验 获得超4个赞
在提供的示例中,您使用相对文件路径。如果您在类路径的“底部”或运行应用程序的目录中查找文件,这很重要。例如,在 maven 项目中,您可以将文件放在“src/main/resources”目录中,上面的代码应该可以成功找到它。
您也可以提供绝对路径(不推荐):
String fileName = "/home/myUser/QNA.txt";
添加回答
举报