为了账号安全,请及时绑定邮箱和手机立即绑定

Java程序读/写文件,如记事本++,它不会改变现有的文本编码并将新文本附加到文件

Java程序读/写文件,如记事本++,它不会改变现有的文本编码并将新文本附加到文件

青春有我 2022-08-03 10:35:50
我正在尝试通过java程序追加文件以读取文件,我在读取enttire文件后使用扫描仪,我将其存储在字符串生成器上并关闭文件。对于我正在使用的写作,我将添加程序生成的数据,并写入它并关闭文件inputFile = new Scanner(new FileInputStream("myfile"), "UTF-8");this.existingData=new StringBuilder(100000);inputFile.close();outFile = new PrintWriter(new OutputStreamWriter(new FileOutputStream("myfile"), StandardCharsets.UTF_8));existingDataoutFile.print(existingData); outFile.flush();outFile.close();所以在那之后,如果我尝试在svn中提交文件,补丁文件显示整个文件已更改,而不仅仅是新添加的数据。svn diff 仅显示新添加的更改。如果我使用记事本++追加生成的数据,则在补丁文件中仅显示添加的内容。我想让我的java程序读/写一个像notpad ++这样的文件,它不会改变现有的文本编码并将新文本附加到文件中。
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

问题是:你总是使用UTF-8进行阅读和写作。您读取的文件可能被写入非常不同的编码。

尝试使用其中一个库确定正确的编码:juniversalchardetICU,并使用正确的编码编写文本。


查看完整回答
反对 回复 2022-08-03
  • 1 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号