作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Java 的 Channel 类将数据库中的 blob 转换为 PDF。当使用 channel 的transferFrom( )时方法中,您应该指定要传输的最大字节数。
当 ReadableByteChannel 没有像其他 Channel 那样的 size( ) 方法时,您应该如何找到最大字节数?
ReadableByteChannel 是否不是适合这项工作的工具,因为它没有 size( ) 方法?我只是使用 Long.MAX_VALUE ,这似乎不正确。
示例代码:
// 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();
最佳答案
使用 Long.MAX_VALUE 或 Blob
的长度(如果可以获得)。
“ReadableByteChannel 的长度”一般来说是没有意义的。考虑一个 SocketChannel,其对等方永远不会关闭连接。
关于java - 如何在 Java 中找到 ReadableByteChannel 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35092213/
我是一名优秀的程序员,十分优秀!