在文本文件末尾获取 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。请确保之后关闭作者。
从 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。请确保之后关闭作者。