我目前正在用二叉樹編寫Java遊戲。我寫了所有需要的方法,但是我在代碼中改變了一些東西,程序現在似乎在實際執行readLine()之前刪除了要讀取的文件內容,導致NullPointerException異常。我實際上難以理解發生了什麼,任何解釋都將非常感謝!將文件轉換爲BinaryTree
文件本身與內容(所有字符串)正確的目錄:
馬 空 空(每個是從頂部開始的單獨一行)
程序崩潰後,文件是空的。
這是錯誤:
Exception in thread "main" java.lang.NullPointerException
at animalgame.BinaryTree.loadTree(BinaryTree.java:63)
at animalgame.AnimalGame.<init>(AnimalGame.java:26)
at animalgame.AnimalGameTester.main(AnimalGameTester.java:21)
Java結果:1
這是我的構造函數的調用:
AnimalGame game = new AnimalGame();
這是構造:
public AnimalGame() throws FileNotFoundException, IOException
{
this.in = new BufferedReader(new FileReader("C:\\Users\\andre_000\\Desktop\\knowledge.txt"));
this.out = new BufferedWriter(new FileWriter("C:\\Users\\andre_000\\Desktop\\knowledge.txt"));
this.gameTree = BinaryTree.loadTree(this.in);
}
而這對於Known Issues已知的方法的摘錄:
public static BinaryTree loadTree(BufferedReader in) throws IOException
{
String value = in.readLine();
if (value.equals("null"))
{
return NIL;
}
還有更多的指定當值不等於「零」發生什麼Known Issues已知的方法,但在第一次比較程序崩潰,即使第一線「馬」
謝謝!
編輯1:
字符串值後爲System.out.println(值)的調用= in.readLine()打印出空,即使文件中的第一行是「馬」!
編輯2:
仍然沒有骰子。根據我朋友的建議試圖關閉溪流。沒有效果。
哪個是二叉樹類的第63行? – Ezzored
它的行if(value.equals(「null」))。對於缺少編號感到抱歉。 – Zeke