Eclipse从资源NullPointerException读取文件

时间:2018-09-21 05:35:43

标签: java eclipse resources getresource

我是新手,所以请不要用力打我。我一直试图弄清楚这一点,现在已经阅读了两天的帖子和博客,并且不断收到NullPointerException错误,我无法弄清为什么它无法到达文件。在下面显示文件夹的布局的情况下,我尝试了多种方法将资源文件夹放在src文件夹内或外部,但仍然遇到相同的错误。

Folder Config

这是我正在使用的代码。

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)

3 个答案:

答案 0 :(得分:1)

根据屏幕快照,您的文件(SrcPath)的扩展名没有.txt。试试看。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

使用类加载器,您的文件应位于类文件夹中,即src。将您的SrcPath.txt放在src文件夹中,它将正常工作。