Я пытаюсь написать чтение любого файла и записать то же самое в другом месте.
File file=new File("<PathToFile>");
String str=FileUtils.readFileToString(file);
Запись str в другом месте без каких-либо изменений в str
File writefile=new File("<PathToWriteFile>");
FileUtils.writeStringToFile(writefile, str);
Проблема в том, что размер выходного файла больше исходного файла
Обновлено:- Я знаю решение, т.е. читать и записывать файлы побайтно, но мой вопрос: ПОЧЕМУ это происходит?
Если размер меняется, вам, скорее всего, нужно рассматривать файл как двоичный. Возможно, ваш ввод двоичный, не имеет ожидаемой кодировки или имеет \n вместо \r\n.
Пройдите по ссылке выше, readFileToString (File) устарел. Он использует кодировку по умолчанию. Попробуйте указать кодировку как: "UTF-8" в readFileToString (File fN, String encoding) и проверьте еще раз. Если это удается, это должна быть проблема кодирования, когда для чтения данных могут использоваться дополнительные байты без необходимости.
Я бы предложил использовать BufferedReader (InputStreamReader (FileInputStream ())) для чтения данных из текстового файла и BufferedOutput для записи в текстовый файл.




Вероятно, это другая кодировка строки - разница в пространстве, занимаемом каждым символом, может быть примерно X2. Вы можете проверить это с помощью любого текстового редактора, который показывает кодировку (например, с помощью блокнота, если выполнить «сохранить как», не выполняя его, кодировка будет отображаться в диалоговом окне «Сохранить»).
В качестве решения вы можете либо
Не читайте его как
String, читайте как байты