java - 在文本文件末尾获取 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
解决方案
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。只要确保之后关闭作者即可。
推荐阅读
- python - 脚本中特定包的python依赖项
- python - scipy.optimize 中的 p_start 是什么?
- c# - 文件上传到rabbitmq
- amazon-web-services - 更改用户数据中的变量
- python - 如何找到除一个特定索引之外的最小数字
- java - 如何使泛型函数根据Java中的输入获取对象属性
- machine-learning - 如何执行下采样和加权技术?
- microsoft-graph-api - 尝试使用 ms-graph API 创建工作簿时创建了损坏的工作簿
- javascript - Browserify/Webpack 捆绑的 3rd 方核心节点模块(npm 模块)在 React Native 0.59 中不工作,只能在调试模式下工作
- excel - Sheets.Columns 隐藏列