Java-программа для чтения / записи файла, такого как notepad ++, то есть она не изменит существующую кодировку текста и не добавит новый текст в файл - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь добавить файл с помощью java-программы для чтения файла. Я использую сканер inputFile = new Scanner(new FileInputStream("myfile"), "UTF-8");
. После чтения файла Enttire я сохраняю его на this.existingData=new StringBuilder(100000); строителе строк и закрываю файл inputFile.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-программа считывала / записывала файл наподобие notpad ++, то есть он не будет изменять существующую кодировку текста и добавлять новыетекст в файл.

1 Ответ

0 голосов
/ 11 марта 2019

Проблема в том, что вы всегда используете UTF-8 для чтения и записи. И файл, который вы читаете, может быть написан с использованием совершенно другой кодировки.

Попробуйте определить правильную кодировку, используя одну из библиотек: juniversalchardet или ICU и напишите текст, используя правильную кодировку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...