我目前正在用二叉树编写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