首页 > 解决方案 > 在文本文件末尾获取 java.io.FileWriter@xxxxxxxx

问题描述

从 jTextArea 写入文件时,我总是在最后得到java.io.FileWriter@xxxxxxxx,而 xxxxxxxx 是一个随机的十六进制值。

请问我怎样才能删除它?

这是我的代码:

try (FileWriter fstream = new FileWriter("./output.txt");        
        BufferedWriter output= new BufferedWriter(fstream);){
            Writer info = fstream.append(jTextArea.getText());
            output.write("" + info);
}catch (IOException e){
       e.printStackTrace();
}


Thank you

标签: javajava-io

解决方案


        Writer info = fstream.append(jTextArea.getText());
        output.write("" + info);  // <------ this is what is wrong

append 的返回值只是this. 这种风格的 API 被称为 fluent 并且允许这种代码:

  writer.append("a").append("b").append("c");

最后一行你可以删除。它的作用是这样的:

  output.write(info.toString());

FileWriter.toString() 使用默认实现,它只输出对象类的名称和该对象的标识哈希码。

append已经写信给 Writer。

话虽如此,如果您有 BufferedWriter,则直接使用它而不是 FileWriter。只要确保之后关闭作者即可。


推荐阅读