มีความจำเป็นต้องถ่ายโอนเอกสารที่เดิมเก็บไว้ในฐานข้อมูลไปยังระบบไฟล์ ดังนั้นฉันจึงเขียนโปรแกรมง่ายๆ เพื่อให้ฟังก์ชันนี้สมบูรณ์
รหัสจาวา
คัดลอกรหัสรหัส ดังต่อไปนี้:
นำเข้า java.io.BufferedOutputStream;
นำเข้า java.io.File;
นำเข้า java.io.FileOutputStream;
นำเข้า java.io.IOException;
นำเข้า java.sql.Connection;
นำเข้า java.sql.DriverManager;
นำเข้า java.sql.PreparedStatement;
นำเข้า java.sql.ResultSet;
นำเข้า org.dbunit.util.Base64;
ReadBlob คลาสสาธารณะ {
-
* @param args
-
โมฆะคงที่สาธารณะ main (String [] args) พ่นข้อยกเว้น {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
การเชื่อมต่อ conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;DatabaseName=test1", "sa",
"123456");
PreparationStatement ps = conn.prepareStatement("เลือก * จาก aa");
ResultSet rs = ps.executeQuery();
ในขณะที่(rs.ถัดไป()){
ชื่อไฟล์สตริง = rs.getString("ชื่อไฟล์");
เนื้อหาสตริง = rs.getString("เนื้อหา");
ไบต์ [] byte_content = Base64.decode (เนื้อหา);
GenerateFile(byte_content, "D://doc", ชื่อไฟล์);
-
conn.ปิด();
-
-
* สร้างไฟล์ตามอาร์เรย์ไบต์
-
โมฆะคงที่สาธารณะ GenerateFile (ไบต์ [] bfile, FilePath สตริง, ชื่อไฟล์สตริง) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
ไฟล์ไฟล์ = null;
พยายาม {
ไฟล์ dir = ไฟล์ใหม่ (filePath);
ถ้า(!dir.exists()&&dir.isDirectory()){
dir.mkdirs();
-
file = ไฟล์ใหม่ (filePath+"//"+fileName);
fos = FileOutputStream ใหม่ (ไฟล์);
bos = BufferedOutputStream ใหม่ (fos);
bos.write(bfile);
} จับ (ข้อยกเว้นจ) {
e.printStackTrace();
} ในที่สุด {
ถ้า (บอส != null) {
พยายาม {
บอส.ปิด();
} จับ (IOException e1) {
e1.printStackTrace();
-
-
ถ้า (fos != null) {
พยายาม {
ฟอส.ปิด();
} จับ (IOException e1) {
e1.printStackTrace();
-
-
-
-
-