【问题标题】:Error about BufferedWriter class in java12 [duplicate]java12中有关BufferedWriter类的错误[重复]
【发布时间】:2020-03-05 05:12:35
【问题描述】:

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

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)

【问题讨论】:

  • 欢迎来到 Stack Overflow。请提供您所看到的错误的详细信息 - “我收到错误”并不像解释这是编译时错误还是异常那样有帮助,并带有确切的消息(如果是异常,还有堆栈跟踪)。
  • @JonSkeet 我已经用错误消息更新了问题
  • 对,所以看起来您没有 OUTPUT_PATH 环境变量,所以 System.getenv("OUTPUT_PATH") 返回 null,并且您将该 null 引用传递给 FileWriter 构造函数。
  • @JonSkeet 我该如何解决这个错误?
  • 要么指定 OUTPUT_PATH 环境变量,要么找到其他方式来指定要写入的文件 - 无论是硬编码路径,还是通过命令行参数接受它。我不知道您要写入哪个文件或如何配置它,因此很难为您提供帮助。

标签: java bufferedwriter


【解决方案1】:

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

    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 文件。 如果有帮助,请告诉我。

【讨论】:

  • new File(...) 在这里不是必需的,您还没有确定实际问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-18
  • 2011-11-09
  • 1970-01-01
  • 2014-10-29
  • 1970-01-01
  • 2014-01-07
相关资源
最近更新 更多