我正在编写一个使用xml文件来存储统计数据的游戏。我正在尝试构建一个将为统计信息加载xml数据模板的类,我希望这是一个资源,但是我遇到了一个问题,它会说文件为空(java.lang.NullPointerException
)< / p>
我的问题是,我做错了什么,我是否正确设置文件作为资源?
代码:
public XMLFileReader(String Item_Name) {
URL test = this.getClass().getResource("Reasource/Example.txt");
System.out.print(test.getPath());
try {
URL is = this.getClass().getResource("Reasources/" + Item_Name);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is.getFile());
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("staff");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Staff id : " + eElement.getAttribute("id"));
System.out.println("First Name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent());
System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
System.out.println("Nick Name : " + eElement.getElementsByTagName("nickname").item(0).getTextContent());
System.out.println("Salary : " + eElement.getElementsByTagName("salary").item(0).getTextContent());
}
}
}
}
public static void main(String[] args){
new XMLFileReader("Example.xml");
}
文件结构:
Main Project
|
|-Reasources
| |
| |-Example.txt
|
|-XMlTest
|
|-XmlFileReader
错误
java.lang.NullPointerException
at Utils.File_Utils.XMLFileReader.<init>(XMLFileReader.java:32)
at Utils.File_Utils.XMLFileReader.main(XMLFileReader.java:68)
第32和68行
Document doc = dBuilder.parse(is.getFile());
new XMLFileReader("Example.xml");
答案 0 :(得分:1)
确保Resources\Example.txt
文件位于classpath.
如果您从cmd行开始运行,那么
java -cp Resources\Example.txt YourClassFile
并且您正在使用绝对类路径,而是使用相对路径,如/Resources or ./Resources
。