用于读取/写入文件的Java程序,如notepad ++,它不会更改现有的文本编码并将新文本附加到文件中

问题描述 投票:-1回答:1

我试图通过java程序追加文件来读取文件我正在使用扫描仪inputFile = new Scanner(new FileInputStream("myfile"), "UTF-8"); 在阅读enttire文件后,我将它存储在this.existingData=new StringBuilder(100000);字符串构建器上并关闭fileinputFile.close();。 写作我正在使用 outFile = new PrintWriter(new OutputStreamWriter(new FileOutputStream("myfile"), StandardCharsets.UTF_8)); 我将在此existingData中添加程序生成的数据并编写它 outFile.print(existingData); outFile.flush(); 并关闭该文件 outFile.close();

所以在那之后,如果我尝试在svn中提交文件,补丁文件会显示整个文件已更改,而不仅仅是新添加的数据。 svn diff仅显示新添加的更改。如果我使用notepad ++追加生成的数据,那么在补丁文件中只显示添加的内容。

我想让我的java程序读取/写入像记事本这样的文件,它不会改变现有的文本编码并将新文本追加到文件中。

java file text encoding tortoisesvn
1个回答
0
投票

问题是:你总是使用UTF-8进行读写。您阅读的文件可能会以非常不同的编码方式编写。

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

© www.soinside.com 2019 - 2024. All rights reserved.