Скажем, я хочу прочитать 1100 байтов из файла, используя Java Bytebuffer и FileChannel: < /p>
ByteBuffer buffer1 = ByteBuffer.allocate(1_100);
int bytesRead = fileChannel.read(buffer1)
< /code>
Количество байтов для чтения неявно указано в выделенном размере буфера. Можно было прочитать меньше байтов, но сам байтовый буфер указывает количество байтов для чтения из файла.ByteBuffer buffer2 = ByteBuffer.allocate(1_200);
bytesRead = fileChannel.read(buffer2)
< /code>
Мы не можем повторно использовать Buffer1 и вынуждены распределить новый буфер, Buffer2. < /p>
То, что я хотел бы видеть, предложение Java - это метод формы: < /p>
int read(ByteBuffer buffer, int offset, int length);
< /code>
Если я знаю максимальное количество байтов, я когда -либо прочитаю, я могу выделить один буфер только один раз и повторно использовать его. Повторное использование того же буфера? Или из сторонней библиотеки, которую я мог бы использовать?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ilechannel