Durante o processo de transferência de arquivos, para tornar os arquivos grandes mais convenientes e rápidos, a compactação é geralmente usada para comprimir o arquivo antes de transferir. As classes de deflater e inflater no pacote java.util.zip em Java fornecem aos usuários a função de compressão do algoritmo deflate. A seguir, é apresentada a implementação de compactação e descompressão escrita por si mesma, e o conteúdo do arquivo de compressão é ilustrado como um exemplo. Os métodos específicos envolvidos podem ser vistos na API JDK para obter informações.
/ ** * * @param inputbyte * matriz de bytes a ser descomprimida * @return Decomprimido Array de bytes * @THOWSows ioexception */ public static byte [] descrippe (byte [] inputByte) lança ioexception {int len = 0; Inflater inf = new inflater (); infl.setInput (inputByte); ByteArrayOutputStream bos = new ByteArrayOutputStream (); byte [] outbyte = novo byte [1024]; tente {while (! infl.finished ()) {// descompacte e emitir o conteúdo descomprimido para o fluxo de saída de bytes bos len = infl.inflate (outbyte); if (len == 0) {break; } Bos.Write (Outbyte, 0, Len); } infl.end (); } catch (Exceção e) {//} finalmente {bos.close (); } return bos.tobytearray (); } /*** comprime. * * @param inputbyte * Byte matriz a ser compactada * @return Data compactada * @THOWSoException */ public static byte [] compact (byte [] inputbyte) lança ioexception {int len = 0; Deflater defl = new deflater (); defl.setInput (inputByte); defl.finish (); ByteArrayOutputStream bos = new ByteArrayOutputStream (); byte [] outputByte = novo byte [1024]; tente {while (! Defl.Finished ()) {// Compressa e saia o conteúdo compactado para o fluxo de saída de bytes bos len = defl.deflate (outputByte); bos.write (outputByte, 0, len); } defl.end (); } finalmente {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 = novo byte [len]; fis.read (b); byte [] bd = compact (b); // Para que o conteúdo compactado seja transmitido na rede, a sequência de codificação Base64 é geralmente usada para ser usada para codificar codest = base64.EncodeBase64String (BD); byte [] bi = Uncompress (base64.DecodeBase64 (codestro)); FileOutputStream fos = new FileOutputStream ("d: //testinflate.txt"); fos.write (bi); fos.flush (); fos.close (); fis.close (); } catch (Exceção e) {//}}O método de implementação de compressão acima em Java é todo o conteúdo que compartilhei com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.