【问题标题】:I keep getting 'Exception in thread "main" java.lang.NullPointerException' [duplicate]我不断收到“线程“主”java.lang.NullPointerException中的异常”[重复]
【发布时间】:2017-10-06 02:52:57
【问题描述】:

错误与 writeToFile() 方法有关。我可以将其注释掉,它运行完美,没有异常错误。所以基本上,我试图将这些营养成分打印在文本文件上。 错误看起来像这样

“线程“主”中的异常 java.lang.NullPointerException 在 Environment.writeToFile(Java1001.java:71) 在 环境。(Java1001.java:54)在 Java1001.main(Java1001.java:43)"

 import static java.lang.System.*;
    import java.io.*;

    public class Java1001
    {
        public static void main(String[] args) throws IOException
        {
            new Environment();
        } 
    }

    class Environment
    {
        private PrintStream outFile;

        public Environment()
        {
            createOutputStream();
            writeToFile();
        }

        public void createOutputStream()
        {
            // create outFile stream here
            File outFile = null;
            try
            {
                outFile = new File("Nutrition.txt");
                outFile.createNewFile();
            }
            catch (Exception e){}
        }

        public void writeToFile()
        {
            outFile.println("NUTRITION FACTS");
            outFile.println("======================================");
            outFile.println("Serving Size 1 tbsp (6g)");
            outFile.println("Servings Per Container about 4");
            outFile.println("======================================");
            outFile.println("Amount Per Serving");
            outFile.println("Calories           20");
            outFile.println("Calories from Fat  5");
            outFile.println("======================================");
            outFile.println("Total Fat 0.5g");
            outFile.println("Sodium 280mg");
            outFile.println("Total Carbohydrate 4g");
            outFile.println("Sugars 0g");
            outFile.println("Protein less than 1 g");
            outFile.println("======================================");
        }
    }

【问题讨论】:

  • 您有 2 个变量名为 outFile
  • 您正在初始化createOutputStream() 中的局部变量outFile 而不是数据成员,因此数据成员是writeToFile() 中的null

标签: java io nullpointerexception


【解决方案1】:

正如 Johnny Mopp 指出的,您在 createOutputStream 方法中有一个 outFile 以及一个实例 outFile。尝试删除 createOutputStream 方法中的File outFile = null;,然后在尝试中写入:

this.outFile = new File("Nutrition.txt");
this.outFile.createNewFile(); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 2013-08-25
    • 1970-01-01
    相关资源
    最近更新 更多