我的数据库表中有一个blob列,必须byte[]在Java程序中将其用作映射,并使用此数据将其转换为InputStreamor OutputStream。但是我不知道这样做的时候内部会发生什么。有人能简要解释一下我进行此转换时发生了什么吗? 问题来源于stack overflow
您可以按以下方式创建和使用字节数组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方法实际上是一种吸气剂。去搞清楚。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。