BufferedWriter无法正确写入数据

以下代码有什么问题?在控制台中,它正在打印正确的数据,但在文件中没有数据。它正在创建0字节的文件。

 JsonObjectBuilder mainObj= Json.createObjectBuilder();
        mainObj.add("delete",delete);
        mainObj.add("update",update);
        mainObj.add("add",add);
       
        String data = mainObj.build().toString();
        System.out.println(data); **//This line printing output**
        BufferedWriter out = new BufferedWriter(new FileWriter("D:/test.json"));
        out.write(data);

下面的输出被打印到控制台,但它正在创建0字节文件。

{"delete":[{"canonicalName":"Amazon"}],"update":[{"canonicalName":"Infosys"},{"canonicalName":"Google HYD"}],"add":[{"canonicalName":"Apple computers"},{"canonicalName":"microsoft India"},{"canonicalName":"Amazon"},{"canonicalName":"Google India"},{"canonicalName":"CSC"},{"canonicalName":"INFY"}]}
iCMS 回答:BufferedWriter无法正确写入数据

如评论中所述,您忘记了关闭作者。 从Java 7开始,您还可以使用新语法try-with-resources代替out.close():

try (BufferedWriter out = new BufferedWriter(new FileWriter("D:/test.json"))) {
    out.write(data);
}

这将在try块末尾自动关闭所有Closeables。 注意:由于没有为FileWriter创建任何变量,因此try-with-resource机制不会关闭FileWriter。幸运的是,BufferedWriter.close()还将关闭传递的FileWriter。

本文链接:https://www.f2er.com/1772891.html

大家都在问