我试图通过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程序读取/写入像记事本这样的文件,它不会改变现有的文本编码并将新文本追加到文件中。
问题是:你总是使用UTF-8进行读写。您阅读的文件可能会以非常不同的编码方式编写。
尝试使用其中一个库确定正确的编码:juniversalchardet或ICU并使用正确的编码写入文本。