Java 类型相互转换byte[]类型,Blob类型详细介绍

 更新时间:2016年10月14日 16:21:48   作者:l4432321  
这篇文章主要介绍了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();

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

        感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Springmvc nginx实现动静分离过程详解

    Springmvc nginx实现动静分离过程详解

    这篇文章主要介绍了Springmvc nginx实现动静分离过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • JUnit单元测试入门必看篇

    JUnit单元测试入门必看篇

    下面小编就为大家分享一篇JUnit单元测试入门必看篇,对新手而言有很好的参考价值,希望对大家有所帮助
    2017-11-11
  • java如何获取视频文件的编解码器代码示例

    java如何获取视频文件的编解码器代码示例

    这篇文章主要给大家介绍了关于java如何获取视频文件的编解码器的相关资料,文中通过代码介绍的非常详细,对大家学习或者使用java具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-05-05
  • Spring Boot应用打WAR包后无法注册到Nacos的问题及解决方法

    Spring Boot应用打WAR包后无法注册到Nacos的问题及解决方法

    当我们将 Spring Boot 应用打包成 WAR 并部署到外部 Tomcat 服务器时,可能会遇到服务无法注册到 Nacos 的情况,其原因主要是应用获取不到正确的服务器端口,下面给大家介绍Spring Boot 应用打 WAR 包后无法注册到 Nacos的问题及解决方法,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • 详解java生成json字符串的方法

    详解java生成json字符串的方法

    本篇文章主要介绍了java生成json字符串的方法,包括map对象转换成json对象,list转换成json,json转换成list和map,有兴趣的可以了解一下。
    2017-01-01
  • Java GUI图形界面开发实现小型计算器流程详解

    Java GUI图形界面开发实现小型计算器流程详解

    本文章向大家介绍Java GUI图形界面开发实现小型计算器,主要包括布局管理器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • Springboot返回的json屏蔽某些属性的操作

    Springboot返回的json屏蔽某些属性的操作

    这篇文章主要介绍了Springboot返回的json屏蔽某些属性的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 关于SpringBoot的@ConfigurationProperties注解和松散绑定、数据校验

    关于SpringBoot的@ConfigurationProperties注解和松散绑定、数据校验

    这篇文章主要介绍了关于SpringBoot的@ConfigurationProperties注解和松散绑定、数据校验,@ConfigurationProperties主要作用就是将prefix属性指定的前缀配置项的值绑定到这个JavaBean上 ,通过指定的前缀,来绑定配置文件中的配置,需要的朋友可以参考下
    2023-05-05
  • 解决mybatis返回boolean值时数据库返回null的问题

    解决mybatis返回boolean值时数据库返回null的问题

    这篇文章主要介绍了解决mybatis返回boolean值时数据库返回null的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 最常用的1000个Java类(附代码示例)

    最常用的1000个Java类(附代码示例)

    这篇文章主要介绍了最常用的1000个Java类(附代码示例),需要的朋友可以参考下
    2015-04-04

最新评论