この例は、参照のためにzip圧縮パッケージの複数のJavaファイルによってエクスポートされる特定のコードを共有します。特定のコンテンツは次のとおりです
1。Javaを使用して、barサーバーの画像をzip形式の圧縮パッケージに実装し、パッケージで複数のファイルをエクスポートします。
2。コードは次のとおりです。
** ImageByteutil.java **
public class imagebyteutil {private static float quality = 0.6f; public static void compresszip(list <file> listfiles、outputstream output、string encode、boolean compress、string alias){zipoutputstream zipstream = null; try {zipstream = new zipoutputStream(output); for(file:file:listfiles){compresszip(file、zipstream、compress、alias+"_"+(listfiles.indexof(file)+1)); }} catch(例外e){e.printstacktrace(); }最後に{try {if(zipstream!= null){zipstream.close(); }} catch(ioexception e){e.printstacktrace(); }}} private static void compresszip(file file、zipoutputstream zipstream、boolean compress、string alias)スロー{fileinputstream input = null; try {入力= new fileinputStream(file); // zip(input、zipstream、file.getname()、compress); zip(input、zipstream、alias+"。"+file.getName()。substring(file.getName()。lastIndexof( "。")+1)、compress); } catch(Exception e){e.printstacktrace(); }最後に{try {if(input!= null)input.close(); } catch(ioexception e){e.printstacktrace(); }}} private static void zip(inputstream input、zipoutputstream zipstream、string zipentryname、boolean compress)スロー例外{byte [] bytes = null; BufferedInputStream BufferStream = null; try {if(input == null)新しい例外をスローします( "圧縮データ項目の取得に失敗しました!データ項目名は" + zipentryname); //圧縮エントリは、特定の独立したファイルではなく、インデックスzipentry zipentry = new zipentry( "image/"+zipentryname)のように、エントリと呼ばれる圧縮パッケージファイルのリストのリスト項目です。 //圧縮エントリ位置に位置し、圧縮パッケージzipstream.putnextententry(zipentry)にファイルの書き込みを開始します。 if(compress){bytes = imagebyteutil.compressofquality(input、0); zipstream.write(bytes、0、bytes.length); } else {bytes = new byte [1024 * 5]; // buffer bufferstream = new bufferedinputStream(input); //入力バッファーint read = 0; while((read = bufferstream.read(bytes))!= -1){zipstream.write(bytes、0、read); }}} catch(ioexception e){e.printstacktrace(); }最後に{try {if(null!= bufferstream)bufferstream.close(); } catch(ioexception e){e.printstacktrace(); }}} public static byte [] compressofquality(file file、float quality)スロー例外{byte [] bs = null; inputstream input = null; try {入力= new fileinputStream(file); BS = CompressOfquality(入力、品質); } catch(Exception e){e.printstacktrace(); }最後に{try {if(input!= null)input.close(); } catch(ioexception e){e.printstacktrace(); }} bsを返します。 } public static byte [] Compressofquality(inputstream input、float quality)スロー例外{bytearrayoutputstream output = null; try {output = new bytearrayoutputStream(); if(quality == 0){thumbnails.of(input).scale(1f).outputquality(quality).toutputStream(output); } else {thumbnails.of(input).scale(1f).outputquality(quality).toutputStream(output); } return output.tobytearray(); } catch(Exception e){e.printstacktrace(); }最後に{try {if(output!= null)output.close(); } catch(ioexception e){e.printstacktrace(); }} nullを返します。 }}** main.java **
public static void main(string [] args){//エクスポートするファイルコレクションを追加するには、リスト<file> listfiles = new ArrayList <>(); //ツールクラスの呼び出し、パラメーターの説明(エクスポートする必要があるファイルセット、bytearrayoutputStreamオブジェクト、エンコード、[true、false]、ファイル名のプレフィックス、file name filex)imagebyteutil.compresszip(listfiles、out、 "utf-8"、fals、 "lwj"); // export Format returnContext.AddParam( "ExportFileName"、 "extfile.zip"); returnContext.addparam( "mimetype"、 "zip");戻ります;}3.この関数は、開発プロセス中にプロジェクトのニーズに従って実装されます。テストは正常に使用でき、カスタマイズできます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。