`
l4432848
  • 浏览: 253583 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java类型相互转换byte[]类型,blob类型

    博客分类:
  • java
阅读更多

在我们的程序开发当中,经常会用到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();

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

0
1
分享到:
评论

相关推荐

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

    本篇文章将详细讲解如何在Java中进行`byte[]`与`Blob`类型的相互转换。 首先,`byte[]`是Java中的基本数据类型,用于存储和操作二进制数据,如图像、音频或任何其他非文本文件。而`Blob`是Java SQL API中的一个接口...

    [java]将Byte存入blob.rar

    首先,你需要将Byte数组转换为`java.sql.Blob`对象。可以使用`oracle.sql.BLOB`(Oracle数据库)或`com.microsoft.sqlserver.jdbc.SQLServerBlob`(SQL Server)等特定数据库实现。 三、将Byte存入Blob的步骤 1. ...

    java读取大字段blob类型

    ### Java读取大字段BLOB类型的详细解析 在数据库中,`BLOB`(Binary Large Object)类型通常用于存储大量的二进制数据,如图像、音频文件或文档等。而在Java开发过程中,处理这些大数据量的`BLOB`字段是一项挑战性...

    JAVA中SQLlite数据库BLOB数据类型的存取.docx

    JAVA 中 SQLlite 数据库 BLOB 数据类型的存取 JAVA 中 SQLlite 数据库 BLOB 数据类型的存取是指在 JAVA 语言中使用 SQLlite 数据库来存储和读取大型二进制对象(BLOB),以便实现文件存储和读取的功能。本文将详细...

    blob,将byte二进制转成pdf

    标题中的“blob,将byte二进制转成pdf”指的是在IT领域中处理二进制数据(Blob)并将其转换为PDF文档的过程。Blob在计算机科学中通常代表Binary Large Object,用于存储大块非结构化的数据,如图像、音频、视频或者在...

    java中sqllite数据库blob数据类型的存取.docx

    ### Java中SQLite数据库BLOB数据类型的存取 #### 背景与问题描述 在Java中操作SQLite数据库时,BLOB(Binary Large Object)类型的数据处理是较为常见的需求之一,尤其是在需要存储图片、文档等二进制文件的情况下。...

    MySql于Java数据类型对应列表

    **JAVA类型:** `java.lang.byte[]` **JDBC类型:** -4 **描述:** `BLOB` 类型用于存储二进制数据,如图片、音频等。L代表最大长度,N表示默认值或额外的长度。在Java中,该类型通常被映射为字节数组 `byte[]`。 ##...

    Java数据类型和MySql数据类型对应一览

    在 Java 中,二进制类型对应的是 byte[] 数组类型。在 MySql 中,二进制类型对应的是 BLOB 类型。 BLOB 类型用于存储大对象,例如图片。图片可以被转换为二进制数据,然后存储在 BLOB 类型的列中。 其他类型 在 ...

    mysql blob to 向 file转换

    本文将详细介绍 MySQL 中的 BLOB 到文件的转换方法,并提供一个 Java 实现示例。 BLOB 数据类型 在 MySQL 中,BLOB 是一种二进制大对象类型,用于存储大型二进制数据,如图像、音频、视频等。BLOB 数据类型可以...

    kettle通过java代码将数据库blob 字段抽取到本地文件

    kettle通过java代码将数据库blob 字段抽取到本地文件

    Blob、InputStream、byte 互转

    本文将详细介绍如何实现`Blob`、`InputStream`、`byte[]`之间的相互转换,并提供具体的代码示例。 #### Blob与byte[]之间的转换 1. **Blob转byte[]** ```java private byte[] blobToBytes(Blob blob) { ...

    java,Blob字段操作,将图片或者文件保存到数据库中.zip

    在Java编程中,Blob(Binary Large Object)是用于存储大量二进制数据的数据类型,常被用在数据库中保存图片、文件等非文本信息。本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库...

    java将图片写入数据库,并读出来(blob clob)

    这个过程通常涉及到Blob和Clob数据类型,它们是Java中的两种特殊对象,用于存储大对象(LOB)。Blob用于存储二进制数据,如图片、音频或视频文件,而Clob则用于存储字符数据,比如长文本。以下是如何使用Java处理...

    Oracle9i数据类型Java数据类型Schema类型对比.doc

    通过了解这些数据类型之间的对应关系,开发者可以更好地将 Java 应用程序中的数据转换为适合存储在数据库中的格式,反之亦然,从而实现高效的数据交换和处理。同时,XML 文件的使用使得这些映射关系可以被结构化地...

    对blob大数据的操作——图片上传与显示*(自己实践可用)

    在XX.hbm.xml文件中,我们需要将图片类型的列属属性类型改成type="org.springframework.orm.hibernate3.support.BlobByteArrayType",因为采用Hibernate转换时会自动将Blob类型转换成String类型。在Bean中,我们需要...

    Hiberante读取BLOB数据类型.

    在Java的持久化框架Hibernate中,BLOB(Binary Large Object)数据类型被用来存储大量二进制数据,如图片、音频、视频或者大型文本文件。本文将深入探讨Hibernate如何读取BLOB类型的数据,以及在实际开发中需要注意...

    sql server中的image类型的数据导出到oracle的clob字段中

    在进行数据库迁移或数据交换时,需要将不同数据库管理系统之间的数据类型进行转换。在本文中,我们将讨论如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中。 Image 类型在 SQL Server 中的应用 ...

    javasqlTypes数据库字段类型java数据类型的对应关系

    - `BLOB` 对应于Java的`byte[]`或`java.sql.Blob`,用于存储二进制大数据。 - `TIMESTAMP` 对应于Java的`java.sql.Timestamp`,用于精确到秒的日期和时间。 - `BOOLEAN` 对应于Java的`boolean`或`Boolean`,虽然...

    oracle LongRaw 转 Blob 源码

    Oracle数据库中,LongRaw和Blob是两种不同的数据类型,它们分别用于存储大对象(LOB)数据。LongRaw类型是Oracle的原始数据类型,用于存储二进制大对象,而Blob类型则是二进制大型对象,更适合存储大量的二进制数据...

Global site tag (gtag.js) - Google Analytics