import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Blob;
private void saveFile(String filePath, Blob content) throws Exception {
FileOutputStream fos = null;
BufferedOutputStream bos = null;
InputStream is = null;
BufferedInputStream bis = null;
try {
File file = new File(filePath);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
is = content.getBinaryStream();
bis = new BufferedInputStream(is);
int b1 = 0;
while ((b1 = bis.read()) != -1) {
bos.write(b1);
bos.flush();
}
} catch (Exception e) {
throw e;
} finally {
if(is!=null){
is.close();
}
if (bis != null) {
bis.close();
}
if (fos != null) {
fos.close();
}
if (bos != null) {
bos.close();
}
}
}
主要原因是我需要把Blob对象取出来作为邮件的附件发送。
本来还想直接在javamail中用Blob取出InputStream作为附件直接发送。
但是javamail不支持这种方法。
我用的javamail版本是1.4.1
分享到:
相关推荐
在Java中处理Blob数据涉及读取二进制数据、将其转换为Blob对象、在SQL语句中设置Blob参数以及从数据库中读取Blob数据。这个过程在处理像图片这样的大文件时尤其有用。确保选择适当的数据库特定类进行Blob操作,并...
在Java编程中,Blob(Binary Large Object)是用于存储大量二进制数据的数据类型,常被用在数据库中保存图片、文件等非文本信息。本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库...
在Java编程中,Blob(Binary Large Object)是用于存储大对象数据类型的一种方式,常见于关系型数据库中,如SQL Server。Blob类型适用于存储图片、音频、视频等非结构化数据。本示例将详细解释如何使用Java向SQL ...
在Java中,读取Oracle数据库中的BLOB字段通常通过`java.sql.Blob`类实现。这个类提供了多种方法来处理BLOB数据,例如`getBytes(long pos, int length)`用于获取BLOB的一部分或全部内容。以下是一个简单的示例: ```...
在Java开发中,Blob(Binary Large Object)类型用于存储大对象,如图片、音频或视频文件等。Oracle数据库是广泛使用的数据库系统,它支持Blob类型的字段。Hibernate作为一款流行的ORM(对象关系映射)框架,提供了...
本文将详细介绍如何在Java应用程序中读取存储在Oracle数据库BLOB字段中的图片数据。 #### 二、准备工作 为了实现读取Oracle数据库中的BLOB字段存储的图片,我们需要进行以下准备: 1. **环境搭建**: - Oracle...
因此,通常会采用二进制大对象(BLOB)的方式来存储较大的二进制数据。 #### 代码示例解析: 在提供的代码片段中,可以看到两个主要的方法:`getApplya` 和 `addSecurityChecks`。 - **`getApplya` 方法**: - 此...
BLOB 对应的 JDBC 类型是 java.sql.Types.BLOB,Java 类型是 java.sql.Blob。CLOB 对应的 JDBC 类型是 java.sql.Types.CLOB,Java 类型是 java.sql.Clob。STRUCT 对应的 JDBC 类型是 java.sql.Types.STRUCT,Java ...
在Java中操作SQLite数据库时,BLOB(Binary Large Object)类型的数据处理是较为常见的需求之一,尤其是在需要存储图片、文档等二进制文件的情况下。本文档旨在解决如何在Java环境下通过SQLite有效地存储和提取BLOB...
对于CLOB和BLOB字段,Oracle JDBC驱动提供了`oracle.jdbc.driver.OracleClob`和`oracle.jdbc.driver.OracleBlob`类,它们实现了Java的标准接口`java.sql.Clob`和`java.sql.Blob`。这两个接口提供了读取和写入大数据...
- 将结果集中的BLOB对象转换为适当的类型(如`oracle.sql.BLOB`或`weblogic.jdbc.vendor.oracle.OracleThinBlob`)。 - **读取BLOB数据并写入文件:** - 获取BLOB对象的输入流`getBinaryInputStream()`。 - 创建...
在数据库中,`BLOB`(Binary Large Object)类型通常用于存储大量的二进制数据,如图像、音频文件或文档等。而在Java开发过程中,处理这些大数据量的`BLOB`字段是一项挑战性的任务。本文将详细介绍如何在Java中有效...
JAVA 中 SQLlite 数据库 BLOB 数据类型的存取是指在 JAVA 语言中使用 SQLlite 数据库来存储和读取大型二进制对象(BLOB),以便实现文件存储和读取的功能。本文将详细介绍如何使用 JAVA 语言来实现 SQLlite 数据库...
注意,这里使用了session.getBinaryStream()来从文件系统读取文件内容,然后将其设置为Blob对象。当然,你也可以直接从内存中的字节数组构建Blob对象。 总结一下,处理Oracle数据库中的Blob数据,你可以选择使用...
总结,通过上述步骤,我们成功地利用Java将MP3文件存储到Oracle数据库的BLOB字段,并能够从中检索出来。这个过程涉及到数据库连接、SQL操作、文件I/O以及BLOB数据类型的处理。在实际应用中,需要考虑异常处理、事务...
这个过程通常涉及到Blob和Clob数据类型,它们是Java中的两种特殊对象,用于存储大对象(LOB)。Blob用于存储二进制数据,如图片、音频或视频文件,而Clob则用于存储字符数据,比如长文本。以下是如何使用Java处理...
在处理 Oracle 数据库中的二进制大型对象(Binary Large Object,简称 Blob)时,开发者经常会遇到两个相似但不同的概念:`java.sql.Blob` 和 `oracle.sql.BLOB`。 1. **`java.sql.Blob`**: - 这是一个 Java 接口...
在这个文件中,开发者可能会展示如何创建Blob对象,读取二进制文件内容,并将其转换为Blob,然后使用Java的JDBC(Java Database Connectivity)API插入到MySQL数据库中。同时,可能也会涉及到Clob的类似操作,用于...