使用FileWriter的java.lang.NullPointException

使用FileWriter的java.lang.NullPointException,java,io,nullpointerexception,file-writing,Java,Io,Nullpointerexception,File Writing,我正在使用BufferedWriter在类的构造函数中写入新创建的文本文件。该类创建文本文件,然后向其中添加初步文本,以便读取操作不会返回错误。但是,当我尝试添加这个初步文本时,特别是在下面的方法中使用writeHigh,我收到一个java.lang.NullPointerException。我认为这与我传递的字符串没有任何关系,但我也尝试过更改writeHigh的实例化,但没有任何效果。我希望有人知道这个错误的原因是什么。堆栈跟踪没有帮助 try { //

我正在使用BufferedWriter在类的构造函数中写入新创建的文本文件。该类创建文本文件,然后向其中添加初步文本,以便读取操作不会返回错误。但是,当我尝试添加这个初步文本时,特别是在下面的方法中使用writeHigh,我收到一个java.lang.NullPointerException。我认为这与我传递的字符串没有任何关系,但我也尝试过更改writeHigh的实例化,但没有任何效果。我希望有人知道这个错误的原因是什么。堆栈跟踪没有帮助

    try
    {   
        //New buffered writters that can write to the specified files.
        writeHigh = new BufferedWriter(new FileWriter(HIGH_SCORE_PATH, false));

        //highScore = Integer.parseInt(readScore.readLine());
    }
    catch(FileNotFoundException e) //If reading from these files fails because they don't yet exist...
    {
        File highFile = new File(HIGH_SCORE_PATH); //Create a new high score file, this is the first time the game has been played.

       try
       {
           highFile.createNewFile();
           writeHigh.write("0000"); //This line is throwing the error
       }
       catch(IOException i)
       {
           i.printStackTrace();
       }
    }
    catch(IOException e)
    {
        e.printStackTrace();
    }
如果失败了

writeHigh = new BufferedWriter(new FileWriter(HIGH_SCORE_PATH, false));

writeHigh稍后为空

在first try bloc中似乎存在FileNotFoundException。A this point writeHigh为null,并且在writeHigh.write调用之前未设置其他值

此行将向您抛出一个NPE

writeHigh.write("0000");
只有捕获到FileNotFoundException,才能到达这一行。这意味着这一行抛出了那个异常

writeHigh = new BufferedWriter(new FileWriter(HIGH_SCORE_PATH, false));
如果它抛出了一个异常,这意味着它执行失败,那么writeHigh还没有被实例化。所以writeHigh是空的。于是写了high.write0000;扔一个NPE

我想你是想这么做的

highFile.write("0000");

stacktrace对您没有帮助,但它可能会帮助我们。请发布堆栈跟踪没有帮助->堆栈跟踪总是有帮助的。在您的情况下,它是有帮助的,因为它告诉您错误出现在writeHigh.write0000;行;。然后您很容易得出结论,问题在于writeHigh为null。请参阅stackTrace,它很有用。此外,您应该重新表述您的问题,即为什么BufferedWriter为null?否则,您的问题只是一个重复的问题,是什么导致在实例化后立即在构造函数中为null?新建FileWriterHIGH_SCORE_PATH,false引发异常,并且您的writeHigh从未初始化