Как перезаписать несколько байтов в файле? - PullRequest
4 голосов
/ 19 ноября 2010

Я создал файл, используя java.io.File, FileInputStream & FileOutputStream.Предположим, что я хочу изменить значение некоторых байтов в файле (например, от 15 до 35) без изменения размера файла.Я попытался создать объект RandomAccessFile, а затем использовать RandomAccessFile.seek, чтобы перейти к байту № 15, записать мои новые байты и затем закрыть файл.Файл изменил свой размер.Что не так с этим подходом, и как это можно сделать успешно?

1 Ответ

4 голосов
/ 19 ноября 2010

Вы уверены, что записываете байт в файл RandomAccessFile?Если вы вызываете метод:

file.write(35);

, то на самом деле он записывает 35 как int, что составляет 4 байта.Если вы хотите записать один байт, попробуйте:

file.writeByte(35);
...