java12 中关于 BufferedWriter class 的错误

Error about BufferedWriter class in java12

我从 hackerrank 复制了这段代码。当我 运行 这种代码时它工作正常(这种方式,使用 System.getenv("OUTPUT_PATH") 关键字)但我将这段代码复制到我的电脑并尝试运行那个代码。 但是我得到了下面的错误。这个 System.getenv("OUTPUT_PATH") 关键字只在 Hackerrank 中有效吗?我知道如何使用缓冲写入器 class 打印到文本文件,但我无法理解此代码行。 请帮助我提高知识。

public static void main(String[] args) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
        String s = "Hello world";
        bw.write(s);
        bw.newLine();
        bw.close();
    }

我在更多 hackerrank 问题中看到了这段代码,我需要知道我们为什么使用它... 这是错误消息,

Exception in thread "main" java.lang.NullPointerException
    at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:226)
    at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:124)
    at java.base/java.io.FileWriter.<init>(FileWriter.java:66)
    at com.company.Main.main(Main.java:8)

我猜你没有给新文件 试试这个:

    public static void main(String args[]) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter(new File("C:\Users\myName\Desktop\data.txt")));
        String s = "Hello world";
        bw.write(s);
        bw.newLine();
        bw.close();
    }
}

这对我来说很好用,而且 txt 文件是按需要生成的。 如果有帮助,请告诉我。