有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    使用Long。MAX_值,或者Blob的长度(如果可以得到)

    “aReadableByteChannel的长度”一般来说没有意义。考虑一个^ {< CD3}},它的对等体永远不会关闭连接。