Während des Dateiübertragungsvorgangs wird die Komprimierung im Allgemeinen verwendet, um große Dateien bequemer und schneller zu übertragen, um die Datei vor dem Übertragen zu komprimieren. Die Deflater- und Inflater -Klassen im Java.util.zip -Paket in Java bieten den Benutzern die Komprimierungsfunktion des Deflate -Algorithmus. Das Folgende ist die von selbst verfasste Komprimierungs- und Dekompressionsimplementierung, und der Inhalt der Komprimierungsdatei wird als Beispiel dargestellt. Die spezifischen Methoden können in der JDK -API für Informationen betrachtet werden.
/ ** * * @param InputByte * Byte -Array dekomprimiert werden * @return dekomprimiert Byte Array * @Throws ioException */ public static byte [] unkomprär (byte [] inputByte) löst ioException {int len = 0; Inflater Infl = neuer Inflater (); Infl.SetInput (InputByte); BytearrayoutputStream bos = new bytearrayoutputStream (); byte [] outbyte = neues byte [1024]; Versuchen Sie {while (! Infl.finished ()) {// dekomprimieren und geben den dekomprimierten Inhalt an den Byte -Ausgangsstrom -Bos len = infl.inflate (Outbyte) aus; if (len == 0) {break; } bos.write (outbyte, 0, len); } Infl.end (); } catch (Ausnahme e) {//} endlich {bos.close (); } return bos.tobytearray (); } /*** komprimieren. * * @param InputByte * Byte -Array zum Komprimieren * @return komprimierte Daten * @Throws ioException */ public static byte [] compress (byte [] InputByte) löst ioException {int len = 0; Deflater Defl = new Deflater (); Defl.SetInput (inputByte); Defl.finish (); BytearrayoutputStream bos = new bytearrayoutputStream (); byte [] outputByte = new Byte [1024]; probieren {while (! defl.finished ()) {// Ausgabe des komprimierten Inhalts in den Byte -Ausgangsstrom -Bos len = Defl.Deflate (outputByte); bos.write (outputByte, 0, len); } Defl.end (); } endlich {bos.close (); } return bos.tobytearray (); } public static void main (string [] args) {try {FileInputStream fis = new FileInputStream ("d: //testdeflate.txt"); int len = fis.available (); Byte [] B = neues Byte [Len]; fis.read (b); byte [] bd = compress (b); // Damit der komprimierte Inhalt im Netzwerk übertragen werden kann, wird im Allgemeinen zur Codierung von CCodESTR = Base64.Encododebase64String (BD) verwendet. Byte [] bi = unkompliziert (Base64.DecodeBase64 (CCodestern)); FileOutputStream fos = new FileOutputStream ("d: //testinflate.txt"); fos.write (bi); fos.flush (); fos.close (); fis.close (); } catch (Ausnahme e) {//}}Die obige Entleger -Komprimierungs -Implementierungsmethode in Java ist der gesamte Inhalt, den ich mit Ihnen geteilt habe. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.