Чтение определенных байтов из RandomAccessFile с помощью FileChannel: Java

У меня есть RandomAccessFile и его FileChannel. То, что я пытаюсь сделать, это прочитать определенный раздел байтов из указанного файла; однако, просматривая методы чтения FileChannel, я не видел перегрузок, которые помогли бы с тем, что я пытаюсь сделать, только методы, которые читали бы все содержимое или читали содержимое в определенную позицию в буфере, который читал Метод принимает. Есть ли метод, который мне не хватает, который поможет мне выполнить мою цель чтения определенного фрагмента байтов, или мне нужно будет прочитать весь канал в буфер, а затем каким-то образом разобрать раздел?


person Chris V.    schedule 25.10.2011    source источник


Ответы (1)


Вы можете перейти к определенной позиции в файле, используя FileChannel#position(long), а затем read буфер нужного размера.

person MByD    schedule 25.10.2011
comment
Какое чтение вы имеете в виду? Я не вижу перегруженных чтений, указывающих размер буфера. - person Chris V.; 26.10.2011
comment
@КрисВ. Создайте ByteBuffer необходимого размера. Или просто используйте RandomAccessFile.read(buffer,int,int), если у вас нет веских причин для использования канала. - person user207421; 26.10.2011