作業プロセス中に、圧縮するためにフォルダーを生成し、ダウンロードのためにユーザーに提供する必要があります。そこで、私は自分で圧縮されたファイルのツールクラスを書きました。このツールクラスは、単一のファイルとフォルダーの圧縮をサポートしています。コードを入れてください:
java.io.bufferedoutputStream; Import java.io.file; Import java.io.fileinputStream; Import java.io.fileoutputStream; Import org.apache.tools.zip.zipentry; Import org.apache.tools.zip.zipotputstream; 2013-7-28 * @Description:ファイル圧縮ツールクラス *指定されたファイル/フォルダーをZIPおよびRAR圧縮ファイルに圧縮します */public Class CompressedFileutil {/** *デフォルトコンストラクター */public CompressedFileutil(){}/** * @descは、指定された形式のファイル/フォルドファイルのソースファイルを生成します。宛先圧縮ファイルの保存パス * @return void * @throws例外 */ public void CompressedFile(String ResourcesPath、String TargetPath)スロー例外{ファイルResourcesFile = new File(ResourcesPath); //ソースファイルターゲットファイル= new File(TargetPath); //目的//宛先パスが存在しない場合、新しいif(!targetfile.exists()){targetfile.mkdirs(); } string targetname = resourcesfile.getname()+"。zip"; //ターゲット圧縮ファイル名fileoutputStream outputStream = new fileoutputStream(ターゲットパス+"//"+ターゲット名); zipoutputStream out = new ZipoutputStream(new BufferedOutputStream(outputStream)); CreateCompressedFile(out、resourcesfile、 ""); out.close(); } /*** @desc圧縮ファイルを生成します。 *フォルダーの場合は、再帰を使用してファイルをトラバースして圧縮します *ファイルの場合、 * @param Out出力ストリーム * @Paramファイルターゲットファイル * @return void * @return void */public void createcompressedfile(zipoutputstream out、zipoutputstream out、zipoutputstream out、file file、file file、string dir)Throws Expection //ファイルリスト情報file [] files = file.listfiles(); //フォルダーを次のレベルに追加するパッケージディレクトリout.putNextEntry(new Zipentry(dir+"/")); dir = dir.length()== 0? "":dir +"/"; //フォルダー内のファイルをパッケージ化する(int i = 0; i <files.length; i ++){createCompressedFile(out、files [i]、dir+files [i] .getname()); // recursive processing}} else {//電流はファイル、パッケージ処理//ファイル入力Stream fileinputStream fis = new fileinputStream(file); out.putnextentry(new zipentry(dir)); // int j = 0を書き込みます。 byte [] buffer = new byte [1024]; while((j = fis.read(buffer))> 0){out.write(buffer、0、j); } //入力ストリームfis.close()を閉じます。 }} public static void main(string [] args){compressedfileutil compressedfileutil = new Compredessfileutil(); try {compresdedfileutil.compressedfile( "g:// zip"、 "f:// zip"); System.out.println( "圧縮ファイルが生成されました..."); } catch(Exception e){System.out.println( "圧縮ファイル生成に失敗..."); e.printstacktrace(); }}}プログラムを実行した結果は次のとおりです。
圧縮前のファイルディレクトリ構造:
ヒント:java.util.zipをjava.utilの下でパッケージングに使用している場合、中国語の問題があるかもしれません。これは、Java ZIPメソッドがエンコード形式の変更をサポートしていないためです。 Ant.javaの下のzipツールクラスをパッケージに使用できます。したがって、プロジェクトのLIBディレクトリにant.jarをインポートする必要があります。
要約します
上記は、編集者によって紹介されたJava生成された圧縮ファイルのコードの例です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!