Ada kebutuhan untuk mentransfer dokumen yang awalnya disimpan dalam database ke sistem file, jadi saya menulis program sederhana untuk menyelesaikan fungsi ini. Kodenya adalah sebagai berikut:
kode Jawa
Copy kode kodenya sebagai berikut:
impor java.io.BufferedOutputStream;
impor java.io.File;
impor java.io.FileOutputStream;
impor java.io.IOException;
impor java.sql.Koneksi;
impor java.sql.DriverManager;
impor java.sql.PreparedStatement;
impor java.sql.ResultSet;
import org.dbunit.util.Base64;
kelas publik ReadBlob {
/**
* @param argumen
*/
public static void main(String[] args) melempar Pengecualian {
Kelas.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Sambungan koneksi = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;NamaDatabase=test1", "sa",
"123456");
PreparedStatement ps = conn.prepareStatement("pilih * dari aa");
ResultSet rs = ps.executeQuery();
while(rs.next()){
String NamaFile = rs.getString("NamaFile");
String konten = rs.getString("Isi");
byte[] byte_content = Base64.decode(konten);
generateFile(byte_content, "D://doc", Namafile);
}
samb.close();
}
/**
* Hasilkan file berdasarkan array byte
*/
public static void generateFile(byte[] bfile, String filePath,String fileName) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
Berkas berkas = nol;
mencoba {
Dir file = File baru(filePath);
if(!dir.exists()&&dir.isDirectory()){
dir.mkdirs();
}
file = File baru(Jalurfile+"//"+Namafile);
fos = FileOutputStream baru(file);
bos = new BufferedOutputStream(fos);
bos.write(bfile);
} tangkapan (Pengecualian e) {
e.printStackTrace();
} Akhirnya {
jika (bos != nol) {
mencoba {
bos.close();
} tangkapan (IOException e1) {
e1.printStackTrace();
}
}
jika (fos != nol) {
mencoba {
fos.close();
} tangkapan (IOException e1) {
e1.printStackTrace();
}
}
}
}
}