私はそれが以前に尋ねられて答えられたことを知っています、しかし私はそれをうまく動かすことができません。
したがって、私のファイル階層は次のとおりです。
+ 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を介して)実行しようとすると、テストに合格しないことです。私は日食に行きます、そして私がゲームをロードしようとすると、それがスローするのを見ることができますException in thread "AWT-EventQueue-0" java.lang.NullPointerException
。
URL fileWithData=getClass().getResource("./save.xml");
行をURL fileWithData=getClass().getResource("save.xml");
andなどに変更してみましたURL fileWithData=getClass().getResource("../save.xml");
が、いつも同じです。
何か案が?
読んでくれてありがとう