Как написать часть заголовка, используя BufferedOutputStream?

Я хочу записать ~20000 байтов для замены того же количества байтов файла со смещением OFFSET, используя BufferedOutputStream. Я пытаюсь сделать это с помощью следующего кода:

headerOffset = 12000;
headerSize = 20000;
byte[] ba = new byte[20];
FileOutputStream os;
BufferedOutputStream bos;
try {
  os = new FileOutputStream('file.dat');
  bos = new BufferedOutputStream(os);
  bos.write(ba, headerOffset, headerSize);
  os.flush();
} catch (IOException e) { e.printStackTrace(); }

Однако это приводит к тому, что файл file.dat перезаписывается содержимым ba, перезаписывая весь файл и оставляя его размером не более ba, Что я делаю неправильно?

0 ответов

Другие вопросы по тегам