这里有新鲜出炉的Java并发编程示例,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要介绍了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();
以上片段可作为读者参考。
来源: http://www.phperz.com/article/17/1117/359723.html