我是新手,所以请不要用力打我。我一直试图弄清楚这一点,现在已经阅读了两天的帖子和博客,并且不断收到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)
答案 0 :(得分:1)
根据屏幕快照,您的文件(SrcPath
)的扩展名没有.txt
。试试看。
答案 1 :(得分:1)
我对您的代码有两条评论:
如@yilmaz所指出的,将文件重命名为SrcPath.txt
。只需使用rename
中的eclipse
选项即可。
getResource()搜索相对于file
文件的.class
。因此,请在resource
文件夹中创建一个软件包src
,并在此处保存SrcPath.txt
文件。
答案 2 :(得分:0)
使用类加载器,您的文件应位于类文件夹中,即src。将您的SrcPath.txt放在src文件夹中,它将正常工作。