Il est nécessaire de transférer les documents initialement stockés dans la base de données vers le système de fichiers, j'ai donc écrit un programme simple pour remplir cette fonction. Le code est le suivant :
Code Java
Copiez le code comme suit :
importer java.io.BufferedOutputStream ;
importer java.io.File ;
importer java.io.FileOutputStream ;
importer java.io.IOException ;
importer java.sql.Connection ;
importer java.sql.DriverManager ;
importer java.sql.PreparedStatement ;
importer java.sql.ResultSet ;
importer org.dbunit.util.Base64 ;
classe publique ReadBlob {
/**
* @param arguments
*/
public static void main (String[] args) lève une exception {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connexion de connexion = DriverManager.getConnection (
"jdbc:sqlserver://localhost:1433;DatabaseName=test1", "sa",
"123456");
PreparedStatement ps = conn.prepareStatement("select * from aa");
ResultSet rs = ps.executeQuery();
tandis que(rs.next()){
String fileName = rs.getString("FileName");
Contenu de la chaîne = rs.getString("Contenu");
byte[] byte_content = Base64.decode(content);
generateFile(byte_content, "D://doc", fileName);
}
conn.close();
}
/**
* Générer des fichiers basés sur un tableau d'octets
*/
public static void generateFile(byte[] bfile, String filePath,String fileName) {
BufferedOutputStream bos = null ;
FileOutputStream fos = null ;
Fichier fichier = nul ;
essayer {
Rép de fichier = nouveau fichier (filePath);
if(!dir.exists()&&dir.isDirectory()){
dir.mkdirs();
}
file = new File(filePath+"//"+fileName);
fos = nouveau FileOutputStream(fichier);
bos = nouveau BufferedOutputStream(fos);
bos.write(bfile);
} attraper (Exception e) {
e.printStackTrace();
} enfin {
si (bos != nul) {
essayer {
bos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
si (fos != nul) {
essayer {
fos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
}