我知道它以前被问过并回答过,但我就是不能让它工作。
所以,我的文件层次结构是:
+ Project
+ build.xml
+ save.xml
+ src
+ build
我有“保存”文件来保存给定瞬间的游戏状态。在游戏中重新加载所有内容应该很容易覆盖和阅读。
我的 save() 是这样的,它似乎正在工作:
public void save(Game game) throws IOException{
Document doc = DocumentHelper.createDocument();
doc.add(game.save());
File save=null;
save = new File("./save.xml");
FileWriter writer = new FileWriter(save);
doc.write( writer);
writer.close();
}
game.save() 是游戏中的一个方法,它实际上做了我想做的事情。它以递归方式完成,我知道它工作正常,因为我用另一个程序打开了 XML 文件。
所以,我的问题从这里开始。我的 getinfofromxml() 方法是:
public Game getinfofromxml() throws IOException{
Game game;
SAXReader reader = new SAXReader();
try{
URL fileWithData=getClass().getResource("./save.xml");
Document document = reader.read(fileWithData);
Element alreadySavedGame= document.getRootElement();
game= getGameSaved(alreadySavedGame);
}catch(DocumentException ex){
throw new IOException();
}
return game;
}
我的问题是,当尝试运行它(通过 ant)时,没有测试会通过。我去eclipse,我可以看到当我尝试加载游戏时,它会抛出Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
.
我试过把这条线改成URL fileWithData=getClass().getResource("./save.xml");
和URL fileWithData=getClass().getResource("save.xml");
之URL fileWithData=getClass().getResource("../save.xml");
类的东西,但它说的总是一样的。
任何想法?
感谢您阅读