Есть ли способ получить Netty ByteBuf из java-файла? Я пытаюсь использовать собственный класс Snappy для проверки контрольной суммы. Ниже мой код, где я хотел бы получить File
объект в переменной bytebuf
.Как преобразовать объект File в Netty ByteBuffer
import io.netty.buffer.ByteBuf;
File file = new File("boot.zip");
ByteBuf byteBuf = Unpooled.buffer(128);
byteBuf.writeBytes(new FileInputStream(file));
int expectedChecksum = Snappy.calculateChecksum(byteBuf);
logger.info("checksum = "+expectedChecksum);
boolean checksumValid = true;
try {
CustomSnappy.validateChecksum(expectedChecksum, byteBuf);
} catch(DecompressionException e) {
checksumValid = false;
e.printStackTrace();
logger.error("DecompressionException in checksum calculation " + e);
} catch(Exception e) {
checksumValid = false;
e.printStackTrace();
logger.error("Exception in checksum calculation " + e);
}
Я использовал Unpooled.buffer (128), но это дает мне No signature of method :io.netty.buffer.UnpooledHeapByteBuf.writeBytes() is applicable for argument types: (java.io.FileInputStream) values: [[email protected]]
я не могу создать объект 'ByteBuf' от абстрактного типа – Ricky
Обновленного ответ со ссылками на официальную документацию и хороший ответ на SO. – cringe
, но я не могу найти что-либо для использования с объектом File в вашей ссылке. – Ricky