如何修复 FileWriter 抛出的 NullPointerException [重复]

Posted

技术标签:

【中文标题】如何修复 FileWriter 抛出的 NullPointerException [重复]【英文标题】:How to fix NullPointerException thrown by FileWriter [duplicate] 【发布时间】:2022-01-23 19:56:12 【问题描述】:

我在运行代码时遇到以下异常。

java.lang.NullPointerException
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:228)
at java.base/java.io.FileWriter.<init>(FileWriter.java:113)
at FileLogger.log(FileLogger.java:39)
at Mapping.main(Mapping.java:104)

代码如下:


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class FileLogger implements Logger 
    private static final String FILE_LOGGER_NAME = "FileOutput.txt";

    static File f;

    static 
        try 
            File f = new File(FILE_LOGGER_NAME);
            if (f.delete()) 
                f.createNewFile();
             else 
                f.createNewFile();
            
         catch (IOException e) 
            e.printStackTrace();
        
    

    @Override
    public void log(String message) 
        try 
            FileWriter writer = new FileWriter(f, true);
         catch (Exception e) 
            e.printStackTrace();
        
        // METHOD UNFINISHED
    

我正在创建一个 FileWriter 对象,其中 boolean append = true 和 File 对象 flog(String message) 方法上方的静态块中声明和填充。 究竟是什么导致了这个异常,我该如何解决?

【问题讨论】:

【参考方案1】:

成员变量f从未初始化。

您在静态初始化程序块中使用了局部变量 f

【讨论】:

以上是关于如何修复 FileWriter 抛出的 NullPointerException [重复]的主要内容,如果未能解决你的问题,请参考以下文章