在文本文件末尾获取 java.io.FileWriter@xxxxxxxx

Getting java.io.FileWriter@xxxxxxxx at the end of a text file

从 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
        Writer info = fstream.append(jTextArea.getText());
        output.write("" + info);  // <------ this is what is wrong

append 的 return 值正好是 this。这种 API 的风格被称为流利的,并且这样做是为了允许这种代码:

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

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

  output.write(info.toString());

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

append 已经写入 Writer。

也就是说,如果你有一个 BufferedWriter,那么直接使用它而不是 FileWriter。请确保之后关闭作者。