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

我已经将我的 .txt 文件放在包的文件夹中(就在 .java 文件旁边)并有这个代码。Java 说找不到文件。


public static void qnaReader()

    {

        String fileName = "QNA.txt";

        FileReader qna = new FileReader(fileName);

    }

文件路径有特定的格式吗?我究竟做错了什么?


翻过高山走不出你
浏览 270回答 3
3回答

慕桂英3389331

对于要读取文件(几乎任何文件)的应用程序,您有两种方法可以这样做:第一种方法提供完整路径。示例:/home/oOVOo/QNA.txt。如果您运行的是 Windows:D:/folder/QNA.txt。/在 Windows 上指定路径时使用是可以的。JVM 读取路径并根据底层操作系统决定使用哪个分隔符。第二种方法根据应用程序看到的当前工作目录提供相对路径。意思是,如果您从名为“foo”的目录或文件夹运行应用程序,则文本文件必须在该目录中才能提供相对路径,即文件名QNA.txt。希望你觉得这个答案有用。

收到一只叮咚

当您执行程序时,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)) {    ...   }}

慕莱坞森

在提供的示例中,您使用相对文件路径。如果您在类路径的“底部”或运行应用程序的目录中查找文件,这很重要。例如,在 maven 项目中,您可以将文件放在“src/main/resources”目录中,上面的代码应该可以成功找到它。您也可以提供绝对路径(不推荐):String fileName = "/home/myUser/QNA.txt";
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java