开发者社区 问答 正文

Byte []到InputStream或OutputStream

我的数据库表中有一个blob列,必须byte[]在Java程序中将其用作映射,并使用此数据将其转换为InputStreamor OutputStream。但是我不知道这样做的时候内部会发生什么。有人能简要解释一下我进行此转换时发生了什么吗? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-07 22:37:13 434 分享 版权
1 条回答
写回答
取消 提交回答
  • 您可以按以下方式创建和使用字节数组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接口的JDBC驱动程序(并非全部这样做),则还可以使用和方法1将a InputStream或OutputStreamblob 连接到blob ,还可以直接获取和设置字节。getBinaryStreamsetBinaryStream

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

    1-该setBinaryStream方法实际上是一种吸气剂。去搞清楚。

    2020-02-07 22:37:27
    赞同 展开评论
问答分类:
问答地址: