在Java中加载文件时的NPE

在Java中加载文件时的NPE,java,nullpointerexception,Java,Nullpointerexception,我试图将一个文件加载到我编写的解析器类中,但在下面的代码行中我一直得到一个NPE。我已经更改了文件路径,但没有任何帮助。 dataset.csv文件的位置为src/res/raw 文件位置定义为: private static final String FILE = "/res/raw/dataset.csv"; File file = new File(this.getClass().getResource(FILE).getFile()); 上面的一行不断抛出一个NPE,getResou

我试图将一个文件加载到我编写的解析器类中,但在下面的代码行中我一直得到一个NPE。我已经更改了文件路径,但没有任何帮助。 dataset.csv文件的位置为src/res/raw

文件位置定义为:

private static final String FILE = "/res/raw/dataset.csv";

File file = new File(this.getClass().getResource(FILE).getFile());

上面的一行不断抛出一个NPE

getResource()
方法使用类路径查找资源。如果您要查找的文件不在类路径中,将找不到它,并且您将得到一个空指针异常。

资源不是文件或
文件。
例如,它们可能在JAR文件中


您应该直接使用
this.getClass().getResource(文件)返回的
URI
,或者
this.getClass().getResourceAsStream(文件)返回的
InputStream

与其尝试将资源用作文件,为什么不将其用作资源(URL或InputStream)?我怀疑这里可能有人。请你解释一下,我不明白。我已经解释过了。你必须告诉我“你应该使用URI”的哪一部分。。。或输入流。。。直接说“你不明白。我甚至还为您编写了一些代码。好的,解决方案是什么?@EJP的答案中包含一个键-使用这个.getClass().getResourceAsStream(文件),它将向您所需的文件返回一个InputStream。确保该文件位于类路径中-在.class文件之间,或者在同一个jar中。