一、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