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 圧縮対象ファイル名、圧縮ファイル名
        * @param args [0]圧縮先ファイル、[1,2...]圧縮元ファイル
        */
       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.003 sec.