java - 从java中的单独文件夹中读取文本文件

标签 java file path

我的项目中有以下路径,我正在编写名为 SomeClassTest.java 的 Someclass.java 测试,在测试中我需要读取“sample.txt”,但我无法读取它文本文件。 以下是我的项目结构。

   src/
      java/
         SomeClass.java

   test/
      java/
         SomeClassTest.java
      resources/
         sample.txt

我尝试使用以下代码读取文件。

File file = new File("/resources/sample.txt");
        FileReader fr = new FileReader(file);
        br = new BufferedReader(fr);
        while ((sCurrentLine = br.readLine()) != null) {
            System.out.println(sCurrentLine);
        }

上面的代码给出了 fileNotFoundException。我可以知道我在这里做错了什么吗?

最佳答案

由于 resources 是一个包,您可以使用 getClass().getResourceAsStream(...)访问您的文件:

FileReader fr = new FileReader(getClass().getResourceAsStream("/resources/sample.txt");
br = new BufferedReader(fr);
while ((sCurrentLine = br.readLine()) != null) {
    System.out.println(sCurrentLine);
}

此函数在位于类层次结构内的文件上打开一个 InputStream

如果您从静态上下文中执行代码,则必须使用 MyClass.class.getResourceAsStream(...) 而不是调用 getClass().getResourceAsStream(... )

关于java - 从java中的单独文件夹中读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27419832/

相关文章:

java - new File(filename) 对象的创建是否将进程文件描述符与该对象相关联?

java - JUnit 不运行

php - 以编程方式确定最大文件名长度

java - 如何按字母顺序对文本文件进行排序?

java - 在 Spring Boot 中使用响应实体登录 Facebook 后无法重定向

java - 在 Java 中使用 Lambda 表达式求最大值

java - 不同对象的单例 JFrame

java - 写入 OSX's/Library/Application Support 文件夹会抛出 IOException : Permission denied

android - 简单的Android文件输出问题

linux - 如何在 Unix/Linux 中获取进程的路径