byte数组转blob类型_Java类型相互转换byte[]类型,blob类型
在我们的程序开发当中,经常会用到java.sql.Blob、byte[]、InputStream之间的相互转换,但在JDK的API当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们之间互换的util.
一、byte[]=>Blob
我们可以通过Hibernate提供的表态方法来实现如:
org.hibernate.Hibernate.Hibernate.createBlob(new byte[1024]);
二、Blob=>byte[]
目前没有找到好一点的API提供,所以只能自已来实现。示例如下:
/**
* 把Blob类型转换为byte数组类型
* @param blob
* @return
*/
private byte[] blobToBytes(Blob blob) {
BufferedInputStream is = null;
try {
is = new BufferedInputStream(blob.getBinaryStream());
byte[] bytes = new byte[(int) blob.length()];
int len = bytes.length;
int offset = 0;
int read = 0;
while (offset < len && (read = is.read(bytes, offset, len - offset)) >= 0) {
offset += read;
}
return bytes;
} catch (Exception e) {
return null;
} finally {
try {
is.close();
is = null;
} catch (IOException e) {
return null;
}
}
}
三、InputStream=>byte[]
private byte[] InputStreamToByte(InputStream is) throws IOException {
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
int ch;
while ((ch = is.read()) != -1) {
bytestream.write(ch);
}
byte imgdata[] = bytestream.toByteArray();
bytestream.close();
return imgdata;
}
四、byte[]=> InputStream
byte[]到inputStream之间的转换很简单:InputStream is = new ByteArrayInputStream(new byte[1024]);
五、InputStream => Blob
可通过Hibernate提供的API:Hibernate.createBlob(new FileInputStream(" 可以为图片/文件等路径 "));
六、Blob => InputStream
Blog转流,可通过提供的API直接调用:new Blob().getBinaryStream();
以上片段可作为读者参考。
byte数组转blob类型_Java类型相互转换byte[]类型,blob类型相关推荐
- byte[] 数组和字符串的转换,与byte[] 数组和int类型的之间的转化
我们先来看看byte bool int ushort 等的定义 首先时byte[]数组与string之间的转换 string 转换位byte[] 数组 string str = "1-1 ...
- java 运行时类型_Java基础之RTTI 运行时类型识别
运行时类型识别(RTTI, Run-Time Type Identification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息. 多态(polymorphism)是基于R ...
- 根据变量推断变量类型_Java A的新本地变量类型推断
根据变量推断变量类型 对于编程语言迷来说,新闻几乎比这更令人兴奋! 现在,存在状态为"候选"的JEP 286用于本地变量类型推断 . 以及Brian Goetz的反馈请求,我很想邀 ...
- java byte数组转化为流_java中字节数组和字符串、IO流和字节数组之间的转换
在实际开发中经常会碰到乱码问题: 首先查看系统支持的编码方式,默认的编码方式 //检查java支持的编码 System.out.println(Charset.availableCharsets(). ...
- java常见的异常类型_Java几种常见的异常类型
转载自:https://blog.csdn.net/niceworkgogogo/article/details/71746208 常见异常类型: 算数异常类:ArithmeticExecption ...
- java中两种异常类型_Java中的三种异常类型
java中两种异常类型 Errors are the bane of users and programmers alike. Developers obviously don't want thei ...
- java main类型_java中main方法的返回类型是?
感谢邀请.man方法是void类型,void没有返回值类型 在java语言程序编写时都会涉及到一个main方法,它的格式为: public static void main(String[] args ...
- java中的无效的列类型_java.sql.SQLException: 无效的列类型: 1111
在使用Mybaits Plus更新数据时报错: 2018-09-05 10:55:40.712 DEBUG 15828 --- [nio-8110-exec-1] c.c.x.s.m.A.update ...
- java不支持类型_java泛型为什么不支持原始类型?
这里是说由于JVM bytecode对于原始类型和引用类型的字节码不相同,为了保持兼容性,故不支持原始类型 At the other end, we have Java's current erase ...
- java日期类型_Java 学习笔记 (三) Java 日期类型
以下内容摘自: https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...
最新文章
- python好还是c+-嵌入式系统中,Python与C/C++哪方更为适用?
- Access update的时候传递参数的顺序
- Java之二分法查找
- 杭电ACM刷题(1):1002,A + B Problem II
- 类型转换出现在赋值运算符左边的情况
- md5 php 加密后乱码_PHP md5函数 的16位字符乱码问题解决-阿里云开发者社区
- 一个大龄程序员对大家的总结性忠告(源于VeryCD)
- Android修改Eclipse 中的Default debug keystore路径,以及修改android的AVD默认路径
- Opencv图像数据结构剖析
- Summarize 2014 Look Ahead 2015
- c++ strlen 使用
- 简账(开源记账软件)-数据库设计
- web前端学习第三周
- c语言中字符后u代表什么意思,C语言中的0U或1U是什么意思?
- matlab atem(),非特定人的英文
- python怎么输入三引号_python三引号如何输入
- 40岁以上的程序员该怎么办?年龄不是问题
- 码教授送你的毕业季礼物
- C# Winform基于socket编程的五子棋游戏(带聊天和发送文件功能)
- 安大计算机学院李炜教授,自动化系年度人物候选 | 李炜
热门文章
- [转]Linux TCP/IP 协议栈的关键数据结构Socket Buffer(sk_buff )
- SSLOJ 1351.矩形反色
- 设计类时需要注意的6个地方
- hibernate组件映射
- java:Eclipse插件springsource-tool-suite的下载和安装
- 中国剩余定理-模版(互质版)
- Vissim 中动态交通路径选择
- HDU 4407 Sum(容斥原理+状态压缩)
- NET牛人应该知道些什么
- [ JAVA编程 ] double类型计算精度丢失问题及解决方法