Durante el proceso de transferencia de archivos, para que los archivos grandes sean más convenientes y rápidos, la compresión generalmente se usa para comprimir el archivo antes de transferir. Las clases de desinflador e inflat en el paquete java.util.zip en Java proporcionan a los usuarios la función de compresión del algoritmo Deflate. La siguiente es la implementación de compresión y descompresión escrita por sí misma, y el contenido del archivo de compresión se ilustra como un ejemplo. Los métodos específicos involucrados se pueden ver en la API JDK para obtener información.
/ ** * * @param inputByte * Byte Array se descomprimirá * @return descomprimido la matriz de byte * @throws ioexception */ public static byte [] uncompress (byte [] inputByte) lanza ioexception {int len = 0; Inflater infl = new Inflater (); infl.setInput (inputByte); ByteArRayOutputStream bos = new ByteArRaReOutputStream (); byte [] outByte = new Byte [1024]; Pruebe {while (! infl.finished ()) {// descomprima y envíe el contenido descomprimido a la corriente de salida de byte bos len = infl.inflate (outByte); if (len == 0) {break; } bos.write (outByte, 0, len); } infl.end (); } catch (excepción e) {//} finalmente {bos.close (); } return bos.tobytearray (); } /*** Compresa. * * @param inputByte * Byte Array se comprimirá * @return datos comprimidos * @throws ioexception */ public static byte [] compress (byte [] inputByte) lanza ioexception {int len = 0; Deflater defl = new DeFlater (); defl.setInput (inputByte); defl.finish (); ByteArRayOutputStream bos = new ByteArRaReOutputStream (); byte [] outputByte = new Byte [1024]; Pruebe {while (! defl.finished ()) {// comprimir y emitir el contenido comprimido al flujo de salida de byte 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 = nuevo byte [len]; fis.read (b); byte [] bd = compress (b); // Para que el contenido comprimido se transmitiera en la red, la cadena de codificación Base64 generalmente se usa para codificar el encodestado = base64.encodeBase64String (BD); byte [] bi = uncompress (base64.DecodeBase64 (codesto)); FileOutputStream fos = new FileOutputStream ("d: //testinflate.txt"); fos.write (bi); fos.flush (); fos.close (); fis.close (); } catch (Exception e) {//}}El método de implementación de compresión de desinversión anterior en Java es todo el contenido que he compartido con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.