当我在Netbeans(6.9)中尝试使用Java加载文件时,我每次都遇到同样的问题。 似乎找不到文件。我收到错误:
显示java.lang.NullPointerException
在此背景下:
File file = new File(this.getClass().getClassLoader().getResource("file.xml").getFile());
// or this also don't work
File file = new File("file.xml");
文件file.xml
与Main.java
文件位于同一目录中。
我怎么能加载这个文件?
答案 0 :(得分:5)
这应该有效(对我而言):
String path = URLDecoder.decode(getClass().getResource("file.xml").getFile(), "UTF-8"); File f = new File(path);
如果我正确理解Javadocs,这应该与使用getClass().getClassloader().getResource()
相同,但根据我的经验,它是不同的
答案 1 :(得分:1)
我建议你添加一行,这样就可以说明一些事情(未经测试):
File f = new File(....);
System.out.println("f=" + f.getAbsolutePath());
// do stuff with f
这将告诉您文件的确切位置,并让您弄清楚到底发生了什么。
答案 2 :(得分:0)
有时您可能需要在前面添加额外的/
File file = new File(this.getClass().getClassLoader().getResource("/file.xml").getFile());