为了账号安全,请及时绑定邮箱和手机立即绑定

我的 .txt 文件使用什么路径来让 FileReader 读取它?

我的 .txt 文件使用什么路径来让 FileReader 读取它?

翻过高山走不出你 2021-10-28 17:24:03
我已经将我的 .txt 文件放在包的文件夹中(就在 .java 文件旁边)并有这个代码。Java 说找不到文件。public static void qnaReader()    {        String fileName = "QNA.txt";        FileReader qna = new FileReader(fileName);    }文件路径有特定的格式吗?我究竟做错了什么?
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

对于要读取文件(几乎任何文件)的应用程序,您有两种方法可以这样做:

第一种方法

提供完整路径。示例:/home/oOVOo/QNA.txt。如果您运行的是 Windows:D:/folder/QNA.txt。/在 Windows 上指定路径时使用是可以的。JVM 读取路径并根据底层操作系统决定使用哪个分隔符。

第二种方法

根据应用程序看到的当前工作目录提供相对路径。意思是,如果您从名为“foo”的目录或文件夹运行应用程序,则文本文件必须在该目录中才能提供相对路径,即文件名QNA.txt

希望你觉得这个答案有用。


查看完整回答
反对 回复 2021-10-28
?
收到一只叮咚

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)) {

    ... 

  }

}


查看完整回答
反对 回复 2021-10-28
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

在提供的示例中,您使用相对文件路径。如果您在类路径的“底部”或运行应用程序的目录中查找文件,这很重要。例如,在 maven 项目中,您可以将文件放在“src/main/resources”目录中,上面的代码应该可以成功找到它。

您也可以提供绝对路径(不推荐):

String fileName = "/home/myUser/QNA.txt";


查看完整回答
反对 回复 2021-10-28
  • 3 回答
  • 0 关注
  • 269 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信