Я пытаюсь прочитать файл (не имеет значения, расширение) и писать после этого, но когда я это делаю, выходной файл отличается от ввода.При чтении и записи файла вывод изменяется
мой код следующий:
OutputStream outputStream = null;
FileReader fr = new FileReader("rute\\inputfile.PNG");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line= br.readLine()) != null) {
content += line;
}
byte[] toBytes= content.getBytes();
InputStream inputStream = new ByteArrayInputStream(toBytes);
try {
outputStream = new FileOutputStream(new File("rute\\output.PNG"));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
inputStream.close();
Если вы спросите меня, почему преобразовать в байты и писать от этой формы, это потому, что мне нужно что-то делать с данными, и мне нужно это преобразование. Если вы скажете мне, что я не могу загрузить изображения на строку, да я могу сделать что-то вроде этого:
File fil = ~~~~;
FileInputStream fis = null;
fis = new FileInputStream(fil);
byte[] bytess = IOUtils.toByteArray(fis);
Но я не хочу делать это таким образом, потому что, если я хочу загружать большие файлы, размер кучи недостаточно, это можно было бы решить с помощью строки «line per line».
Спасибо за ваши ответы
В чем вопрос? –
Как я могу читать и писать файл без его изменения, или что проблема/причина, по которой выходной файл не совпадает с вводом? –