Eclipse 从资源中读取文件 NullPointerException

Eclipse Reading File From Resource NullPointerException

我是新手,请不要打我太重。我一直在尝试解决这个问题大约 2 天,现在阅读帖子和博客,但我不断收到 NullPointerException 错误,我无法弄清楚为什么它无法访问文件。下面我展示了我的文件夹的布局,我尝试了多种将资源文件夹放在 src 文件夹内或外部的方法,但我仍然遇到相同的错误。

这是我正在使用的代码。

package com;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class ClasspathFileReader
{
    public static void main(String[] args) throws IOException
        {
        String fileName = "resource/SrcPath.txt";
        ClassLoader classLoader = ClassLoader.getSystemClassLoader();

        File file = new File(classLoader.getResource(fileName).getFile());


        //Read File Content
        String content = new String(Files.readAllBytes(file.toPath()));
        System.out.println(content);
    }
}

堆栈跟踪:

Exception in thread "main" java.lang.NullPointerException
    at com.ClasspathFileReader.main(ClasspathFileReader.java:14)

根据屏幕截图,您的文件 (SrcPath) 没有以 .txt 扩展名结尾。试一试。

使用 classloader 你的文件应该在你的 class 文件夹中,即 src。将你的 SrcPath.txt 放在 src 文件夹中,它将正常工作。

我对你的代码有两条评论:

  • 正如@yilmaz 所指出的,将文件重命名为 SrcPath.txt。只需使用 eclipse 中的 rename 选项。

  • getResource() 搜索与您的 .class 文件相关的 file。因此,在您的 src 文件夹中创建一个包 resource 并在此处保存您的 SrcPath.txt 文件。