java - Byte[] 到 InputStream 或 OutputStream

标签 java bytearray inputstream outputstream

我的数据库表中有一个 blob 列,为此我必须在我的 Java 程序中使用 byte[] 作为映射,并且要使用此数据,我必须将其转换为 InputStreamOutputStream。但我不知道当我这样做时内部会发生什么。谁能简要解释一下我进行此转换时发生了什么?

最佳答案

您可以按如下方式创建和使用字节数组 I/O 流:

byte[] source = ...;
ByteArrayInputStream bis = new ByteArrayInputStream(source);
// read bytes from bis ...

ByteArrayOutputStream bos = new ByteArrayOutputStream();
// write bytes to bos ...
byte[] sink = bos.toByteArray();

假设您使用的是实现标准 JDBC Blob interface 的 JDBC 驱动程序(不是全部),您可以使用 getBinaryStreamsetBinaryStream方法1,也可以直接获取和设置字节。

(通常,您应该采取适当的步骤来处理任何异常,并关闭流。但是,在上面的示例中关闭 bisbos 是不必要的,因为它们不与任何外部资源相关联;例如文件描述符、套接字、数据库连接。)

1 - setBinaryStream 方法实际上是一个 getter。去图吧。

关于java - Byte[] 到 InputStream 或 OutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2091454/

相关文章:

java - 如何在Java中对Map进行排序

c# - 如何在 C# 和 Java 中生成相同的 MD5 哈希码?

java - 图像到字节数组到字符串(反之亦然)

java - Java 压缩中的 FileNotFound 错误

java - TDBLoader API 通用输入文件

java - 如何解决 android (java) 中的退格错误

java - 从请求中获取根域

Java 将 long 转换为 4 字节

c# - 如何修剪字节数组的几个字节?

java - 在 java 中使用 Connect Direct 传输 inputStream