JAva ZIP圧縮/解凍(中国語対応)
一、Java圧縮ファイルフロー(ZIP圧縮)
★この例では、データベースに保存されているファイルを圧縮し、最後にZIP形式に圧縮されたバイナリストリームを取得する
サードパーティ製パッケージ:apache Compares(commons-compress-1.3-bin.zip)
参照されるクラス:
パッケージング方法:
★この例では、データベースに保存されているファイルを圧縮し、最後にZIP形式に圧縮されたバイナリストリームを取得する
サードパーティ製パッケージ:apache Compares(commons-compress-1.3-bin.zip)
参照されるクラス:
- import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
- import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
パッケージング方法:
- private byte[] compressFiles(List<FileStorage> files){
- byte[] b = null;
- try{
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- ZipArchiveOutputStream zip = new ZipArchiveOutputStream(bos);
- zip.setEncoding("gbk");
- for(int i=0;i<files.size();i++){
- FileStorage file = files.get(i);
- ZipArchiveEntry entry = new ZipArchiveEntry(file.getFILE_NAME());
- entry.setSize(file.getFILE_DATA().length);
- zip.putArchiveEntry(entry);
- zip.write(file.getFILE_DATA());
- }
- zip.closeArchiveEntry();
- zip.close();
- b = bos.toByteArray();
- bos.close();
- }catch(Exception e){
- e.printStackTrace();
- return null;
- }
- return b;
- }