zoukankan      html  css  js  c++  java
  • 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();

      以上片段可作为读者参考。

  • 相关阅读:
    什么样的人适合边打工边创业?
    手机市场分析
    《这个男人来自地球》台词
    关系网成网络盈利模式 LinkedIn网站探秘
    第二届手机应用大赛“金枝奖”评选
    乔布斯的平静让人不寒而栗
    发展移动互联网需理清商业模式
    好想看故乡夏夜的天空
    AdoHelper能否改写成单例模式?
    GMail邀请发放处
  • 原文地址:https://www.cnblogs.com/kaige123/p/5712807.html
Copyright © 2011-2022 走看看