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

我正在尝试通过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 ++这样的文件,它不会改变现有的文本编码并将新文本附加到文件中。


青春有我
浏览 65回答 1
1回答

开心每一天1111

问题是:你总是使用UTF-8进行阅读和写作。您读取的文件可能被写入非常不同的编码。尝试使用其中一个库确定正确的编码:juniversalchardet或ICU,并使用正确的编码编写文本。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java