أثناء عملية نقل الملفات ، من أجل جعل ملفات كبيرة أكثر ملاءمة وسريعة ، يتم استخدام الضغط بشكل عام لضغط الملف قبل النقل. توفر فئات deflater و inflater في حزمة java.util.zip في Java للمستخدمين وظيفة ضغط الخوارزمية المنهارة. فيما يلي تنفيذ الضغط وإزالة الضغط المكتوبة بمفرده ، ويتم توضيح محتوى ملف الضغط كمثال. يمكن الاطلاع على الطرق المحددة المعنية في JDK API للحصول على معلومات.
/ ** * * param inputbyte * byte array ليتم إلغاء ضغطها * @Return decressed byte array * throws ioException */ public static byte [] Uncompress (byte [] inputbyte) يلقي ioException {int len = 0 ؛ inflater inflater = new inflater () ؛ infl.setInput (inputbyte) ؛ bytearrayoutputstream bos = جديد bytearrayoutputStream () ؛ بايت [] outbyte = new byte [1024] ؛ جرب {بينما (! infl.finish ()) {// إزالة الضغط وإخراج المحتوى الذي تم إلغاء الضغط عليه إلى دفق البايت BOS len = infl.inflate (outbyte) ؛ if (len == 0) {break ؛ } bos.write (outbyte ، 0 ، len) ؛ } infl.end () ؛ } catch (استثناء e) {//} أخيرًا {bos.close () ؛ } return bos.tobytearray () ؛ } /*** ضغط. * * param inputbyte * byte array ليتم ضغطها * dative data compressed * throws ioException */ public static byte [] compress (byte [] inputbyte) يلقي ioException {int len = 0 ؛ deflater defl = new deflater () ؛ defl.setInput (inputByte) ؛ defl.finish () ؛ bytearrayoutputstream bos = جديد bytearrayoutputStream () ؛ byte [] outputByte = new byte [1024] ؛ جرب {بينما (! defl.finish ()) {// ضغط وإخراج المحتوى المضغوط إلى دفق الإخراج bos bos len = defl.deflate (outputByte) ؛ Bos.Write (OutputByte ، 0 ، Len) ؛ } defl.end () ؛ } أخيرًا {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 = new byte [len] ؛ Fis.Read (B) ؛ بايت [] bd = ضغط (ب) ؛ // لكي يتم إرسال المحتوى المضغوط على الشبكة ، يتم استخدام سلسلة الترميز BASE64 بشكل عام لاستخدامها في تشفير Encodestr = base64.encodeBase64String (BD) ؛ byte [] bi = uncompress (base64.decodeBase64 (encodester)) ؛ fileOutputStream fos = new FileOutputStream ("d: //testinflate.txt") ؛ fos.write (bi) ؛ fos.flush () ؛ fos.close () ؛ fis.close () ؛ } catch (استثناء e) {//}}طريقة تنفيذ الضغط المذكورة أعلاه في Java هي كل المحتوى الذي شاركته معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.