一、byte[]=>Blob
我们可以通过Hibernate提供的表态方法来实现如:
org.hibernate.Hibernate.Hibernate.createBlob(new byte[1024]);
二、Blob=>byte[]
/**
* 把Blob类型转换为byte数组类型
* @param blob
* <a href="http://my.oschina.net/u/556800" target="_blank" rel="nofollow">@return</a>
*/
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
InputStream is =
new
ByteArrayInputStream(
new
byte
[
1024
]);
五、InputStream => Blob
可通过Hibernate提供的API:
Hibernate.createBlob(
new
FileInputStream(
" 可以为图片/文件等路径 "
));
六、Blob => InputStream
Blog转流,可通过提供的API直接调用:
new
Blob().getBinaryStream();
转:http://my.oschina.net/zimingforever/blog/81691