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();

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

  • 相关阅读:
    Open War I: 野王复活与视野,望远镜视野,近距离射击,远程狙击
    取石子(六)_nyoj_585(博弈-奇异矩阵).java
    (step6.1.1)hdu 1879(继续畅通工程——最小生成树、kruscal)
    iOS的@property属性和@synthesize属性
    [Python]datetime常用的几个操作
    论明天
    汉语-词语-清净:百科
    汉语-词语-解脱:百科
    汉语-词语-放下:百科
    汉语-词语-执着:百科
  • 原文地址:https://www.cnblogs.com/kaige123/p/5712807.html
Copyright © 2011-2022 走看看