nio如何在Java中找到ReadableByteChannel的大小?
我正在使用Java的通道类将一个blob从数据库转换为PDF。当使用通道的transferFrom( )方法时,应该指定要传输的最大字节数
当ReadableByteChannels没有像其他通道一样的size()方法时,您应该如何找到这个最大字节数
ReadableByteChannel是否因为没有size()方法而不是适合该作业的工具?我只是用了很久。最大值似乎不正确
示例代码:
// Get the blob in an InputStream
InputStream inStream = rs.getBinaryStream("SomeBlob");
// Create a ReadableByteChannel from that InputStream
ReadableByteChannel rbc = Channels.newChannel(inStream);
// Make a FileOutputStream to write the PDF From
FileOutputStream outStream = new FileOutputStream("MyPDF.PDF");
outStream.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
// Close stuff
inStream.close();
outStream.close();
rbc.close();
# 1 楼答案
使用Long。MAX_值,或者
Blob
的长度(如果可以得到)“a
ReadableByteChannel
的长度”一般来说没有意义。考虑一个^ {< CD3}},它的对等体永远不会关闭连接。