将文件转换为BinaryTree

时间:2013-10-19 16:31:08

标签: java binary-tree bufferedreader

我目前正在使用二进制树在Java中编写问题游戏。我编写了所有必要的方法,但是我在代码中更改了一些内容,程序现在似乎在实际执行readLine()之前删除了要读取的文件的内容,从而导致NullPointerException。我真的很难过会发生什么事,任何解释都会非常感激!

文件本身位于包含内容(所有字符串)的正确目录中:

马 空值 null(每个都在从顶部开始的单独一行)

程序崩溃后,文件为空。

这是错误:

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);
}

这是loadTree方法的摘录:

public static BinaryTree loadTree(BufferedReader in) throws IOException 
{
    String value = in.readLine();

    if (value.equals("null")) 
    {
        return NIL;
    }

还有更多的loadTree方法指定当值不等于“null”时会发生什么,但程序在第一次比较时崩溃,即使第一行是“Horse”

谢谢!

编辑1:

在String value = in.readLine()之后调用System.out.println(value),即使文件中的第一行是“Horse”,也会输出null!

编辑2:

仍然没有骰子。按照朋友的建议尝试关闭溪流。没有效果。

1 个答案:

答案 0 :(得分:0)

可能这一行可能导致问题,

if (value.equals("null")) 

您可以检查以下空值

if (value != null)