FileNotFoundException in src/main/resources

2022-09-01 23:04:25

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

当我尝试打开文件时:

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

我收到一个错误:

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

src/main/resources 下的所有文件都放在 maven 下类路径的根文件夹中。那么为什么程序无法在此处找到文件呢?


答案 1

如果要将文件打包到类路径中,请按此方式读取它。从类路径。

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);
        }
    }
}

enter image description here

enter image description here


答案 2

只要把这个作为你的路径:

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

推荐