JAVA開発メモ
ZIP形式の圧縮 のバックアップソース(No.1)
 

[トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]

*ZIP形式の圧縮
ファイル展開サンプル
 import java.io.BufferedOutputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
 class ZipInputStreamSample {
         /**
 	 * @param args 圧縮ファイル名
 	 */
 	public static void main(String[] args) {
         byte[] buf = new byte[128];
 
         try {
             // 圧縮ファイルへのストリームを開く
             ZipInputStream in =
                 new ZipInputStream(new FileInputStream(args[0]));
 
             // 全てのエントリに対して処理を実行
             ZipEntry entry;
             while ((entry = in.getNextEntry()) != null) {
                 String filename = entry.getName();
                 System.out.println("Extracting " + filename + ".");
 
                 // 解凍先ファイルへのストリームを開く
                 BufferedOutputStream out =
                     new BufferedOutputStream(new FileOutputStream(filename));
 
                 // データを解凍して書き込む
                 int size;
                 while ((size = in.read(buf, 0, buf.length)) != -1) {
                     out.write(buf, 0, size);
                 }
 
                 // エントリと出力ストリームを閉じる
                 in.closeEntry();
                 out.flush();
                 out.close();
             }
 
             // 入力ストリームを閉じる
             in.close();
         } catch (IOException e) {
             e.printStackTrace();
         }
     }
 }

ファイル圧縮サンプル
 import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
 class ZipOutputStreamSample {
     /**
      * @param args 圧縮対象ファイル名、圧縮ファイル名
      */
     public static void main(String[] args) {
         byte[] buf = new byte[128];
 
         try {
             // 圧縮先ファイルへのストリームを開く
             ZipOutputStream out =
                 new ZipOutputStream(new FileOutputStream(args[0]));
  
             for (int i = 0; i < args.length - 1; i++) {
                 System.out.println("Add to zip from " + args[i + 1] + ".");
 
                 // 圧縮元ファイルへのストリームを開く
                 BufferedInputStream in =
                     new BufferedInputStream(new FileInputStream(args[i + 1]));
 
                 // エントリを作成する
                 ZipEntry entry = new ZipEntry(args[i + 1]);
                 out.putNextEntry(entry);
 
                 // データを圧縮して書き込む
                 int size;
                 while ((size = in.read(buf, 0, buf.length)) != -1) {
                     out.write(buf, 0, size);
                 }
 
                 // エントリと入力ストリームを閉じる
                 out.closeEntry();
                 in.close();
             }
 
             // 出力ストリームを閉じる
             out.flush();
             out.close();
         } catch (IOException e) {
             e.printStackTrace();
         }
     }
 }

トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Modified by MT22(Moriwaki Takashi)

"PukiWiki" 1.3.7 Copyright © 2001,2002,2003 PukiWiki Developers Team. License is GNU/GPL.
Based on "PukiWiki" 1.3 by sng
Powered by PHP 5.3.29

HTML convert time to 0.002 sec.