Как бы вы изменили один байт в файле? - PullRequest
5 голосов
/ 18 марта 2009

Каков наилучший способ изменить один байт в файле с помощью Java? Я реализовал это несколькими способами. Один использует все манипуляции с байтовым массивом, но он очень чувствителен к объему доступной памяти и не масштабируется более чем на 50 МБ или около того (т.е. я не могу выделить 100 МБ байта [] без получения ошибок OutOfMemory). Я также реализовал это другим способом, который работает и масштабируется, но это выглядит довольно странно.

Если вы являетесь гуру java io и вам приходилось бороться с очень большими файлами (200-500 МБ), как вы можете подойти к этому?

Спасибо!

Ответы [ 2 ]

13 голосов
/ 18 марта 2009

Я бы использовал RandomAccessFile , найдите позицию, которую я хотел изменить, и запишите изменение.

6 голосов
/ 18 марта 2009

Если бы все, что я хотел сделать, это изменить один байт, я бы не стал читать весь файл в память. Я бы использовал RandomAccessFile, seek для рассматриваемого байта, записал его и закрыл файл.

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