使用java解析blob流中的文件并保存到本地
以下是使用Java解析BLOB流中的文件并将其保存到本地的示例代码:
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class BlobParser {
public static void main(String[] args) throws Exception {
// 创建数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
// 准备SQL语句
String sql = "SELECT file_data FROM file_table WHERE id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 1); // 以ID为1的文件为例
// 执行查询
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
Blob blob = rs.getBlob("file_data");
InputStream is = blob.getBinaryStream();
// 保存文件到本地
FileOutputStream fos = new FileOutputStream("C:/temp/file.txt");
byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fos.close();
is.close();
}
// 关闭连接
rs.close();
pstmt.close();
conn.close();
}
}
上面的示例代码假设存在一个名为file_table的表,其中包含一个名为file_data的BLOB字段,存储了文件的二进制数据。我们使用ID为1的文件作为例子,并将其保存到C:/temp/file.txt文件中。你可以根据实际需求修改代码。
原文地址: https://www.cveoy.top/t/topic/rhg 著作权归作者所有。请勿转载和采集!