원래 데이터베이스에 저장되어 있던 문서를 파일 시스템으로 옮겨야 하는데, 이 기능을 완성하기 위한 간단한 프로그램을 작성해 보면 다음과 같습니다.
자바 코드
다음과 같이 코드 코드를 복사합니다 .
import java.io.BufferedOutputStream;
java.io.파일 가져오기;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
java.sql.DriverManager 가져오기;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
org.dbunit.util.Base64 가져오기;
공개 클래스 ReadBlob {
/**
* @param 인수
*/
public static void main(String[] args)에서 예외가 발생합니다.
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
연결 연결 = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;DatabaseName=test1", "sa",
"123456");
ReadyStatement ps = conn.prepareStatement("select * from aa");
ResultSet rs = ps.executeQuery();
동안(rs.next()){
String fileName = rs.getString("파일 이름");
문자열 내용 = rs.getString("Content");
byte[] byte_content = Base64.decode(content);
generateFile(byte_content, "D://doc", 파일이름);
}
conn.close();
}
/**
* 바이트 배열을 기반으로 파일 생성
*/
공개 정적 무효 생성 파일(바이트[] bfile, 문자열 파일 경로, 문자열 파일 이름) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
파일 파일 = null;
노력하다 {
파일 dir = 새 파일(filePath);
if(!dir.exists()&&dir.isDirectory()){
dir.mkdirs();
}
file = new File(파일 경로+"//"+파일 이름);
fos = 새로운 FileOutputStream(파일);
bos = 새로운 BufferedOutputStream(fos);
bos.write(bfile);
} 잡기(예외 e) {
e.printStackTrace();
} 마지막으로 {
if (bos != null) {
노력하다 {
bos.close();
} 잡기(IOException e1) {
e1.printStackTrace();
}
}
if (fos != null) {
노력하다 {
fos.close();
} 잡기(IOException e1) {
e1.printStackTrace();
}
}
}
}
}