当前位置: 首页 > 知识库问答 >
问题:

src/main/resources中的FileNotFoundException

谢正初
2023-03-14

我在我的maven项目中的src/main/资源下放置了一个文件,文件名只是temp.txt.

当我试图打开文件时:

BufferedReader br = new BufferedReader(new FileReader(new File("./temp.txt")));

我得到一个错误:

Exception in thread "main" java.io.FileNotFoundException: \temp.txt

src/main/资源下的所有文件都放在maven下类路径的根文件夹中。那么为什么程序不能在这里找到文件呢?

共有3个答案

桑宇
2023-03-14

在Jenkins中设置集成测试时出现此问题。
问题是由于作业位于名称中有空格的文件夹中。因此,Jenkins创建了foo bar而不是名为foo bar的工作区文件夹,并且FileNotFoundException的测试都失败了。解决方案只是重命名您的文件夹,使其没有任何空格。

毛胜
2023-03-14

只需将此作为您的路径:

BufferedReader br = new BufferedReader(new FileReader(new 
File("src/main/resources/temp.txt")));
郭胤
2023-03-14

如果要将文件打包到类路径中,请将其原样读取。。从类路径。

Maven结构

src
   main
       resources
               file.txt

生成后,文件将被放置在类路径的根目录中。所以使用

InputStream is = getClass().getResourceAsStream("/file.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));

file.txt前面的/将从类所在的任何包中将您带到根。

使现代化

测试示例

package com.underdogdevs.stackoverflow;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class TestResourceFile {

    public static void main(String[] args) throws IOException {
        InputStream is = TestResourceFile.class.getResourceAsStream("/test.txt");
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
    }
}
 类似资料:
  • 我正在为我的maven项目添加一个可执行的jar测试。我已经编辑了pom文件,以使用src/main/resources中的一个主类。但是,当我尝试运行jar时,它找不到我的主类。有什么想法吗?

  • 我有一个目录结构如下的maven模块,我想在中获取的路径 我使用进行了尝试,但它给出了一个空值。 无法获取资源的路径

  • 我有一个maven Spring项目,里面有文件。如何在SpringMVC控制器中读取它。 我正在使用 但是is.

  • 问题内容: 在我的Maven项目中,我在src / main / resources中有一个xls文件。当我这样阅读时: 一切都好。 但是我想使用getResourceAsStream将其作为InputStream读取。当我执行此操作时,无论是否使用斜线,我总会得到NPE。 不管斜线是否存在,或者如果我使用getClassLoader()方法,我仍然会得到一个NullPointer。 我也尝试过这

  • 我为每个生成环境都有一个自定义属性文件夹。我已经为它定义了配置文件并添加了不同的文件夹。它们会被正确地捡起来。但是,src/main/resources中的资源没有被拾取。如果netbeans 8有什么不同的话,我会使用它。我的问题是一旦激活了不同的概要文件,是否需要在概要文件中重新指定主要资源或测试资源?多谢了。 我正在使用Maven开发一个java web项目。有一些web服务的xml文件(h

  • 我对Maven声纳设置有问题。我需要在src/main/java和src/main/resources中包含我的所有项目文件,以便SonarQube将显示所有文件的结果,但排除src/main/resources/static/file中的一些文件。对于测试路径,它已经在src/test/java中默认设置 但是当我用命令提示符运行我的maven-sonar时:mvn Sonar:Sonar。有这