我知道這是之前被問及的答案,但我無法使其工作。閱讀位於同一目錄中的XML文件
所以,我的文件層次是:
+ Project
+ build.xml
+ save.xml
+ src
+ build
我有「保存」文件保存在一個給定時刻遊戲的狀態。應該很容易覆蓋並且易於閱讀,以便在遊戲中再次加載所有內容。
我保存()就是這樣的,它似乎是工作:
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),沒有測試將通過。我去日食,我可以看到,當我嘗試加載遊戲時,它會拋出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");
和類似的東西,但它說永遠都是一樣的。
有什麼想法?
感謝您閱讀
如果你使用'的getClass()的getResource()'方法,那麼該文件應在類路徑 – 2012-07-17 23:23:51
它認爲是我的班級路徑中的IS。我如何檢查它? (對不起,因爲如此無知) – FDrico 2012-07-17 23:35:09