Este ejemplo utiliza la transmisión de entrada y salida ZIP de Java para comprimir y descomprimir archivos. La parte anterior del código implementa la adquisición de rutas de archivo, cambios en los nombres de archivos comprimidos, etc., de la siguiente manera:
paquete com.utility.zip; import java.io.bufferedInputStream; import java.io.bufferedOutputPutStream; import java.io.file; import java.io.fileInputStream; import java.io.fileOutputStream; import java.io.fileOutStream; import Com.utity.io.ioutil;/** compress; La transmisión de entrada y salida de zip de Java * * @author liujiduo * */public final class ziputil {private ziputil () {// vacía}/** * archivo comprimido * * @param filepath * ruta de archivo para ser comprimido * @return archivo comprimido */public file estático zip (string filepath) {archivo de archivo = origen de archivo; (fuente.Exists ()) {// nombre de archivo comprimido = fuente FileName.zipString ZIPNAME = Source.getName () + ".zip"; target = new File (fuente.getParent (), ZIPName); if (target.Exists ()) {target.delete (); // delete el archivo anterior} FileOutStream fos = nitULL; ZOTSLULL; ZIPOUT; {fos = new FileOutputStream (Target); Zos = new ZipOutputStream (new BufferedOutputStream (fos)); // Agregue el archivo correspondiente EntryDEdDentry ("/", fuente, Zos);} Catch (IOException e) {tire runtimeException (e);} finalmente {iOutil.closquly (zos, fos);};} target;}/** * escanear para agregar la entrada de archivo * * @param base * ruta base * @param Fuente * Fuente de origen * @Param Zos * ZIP File Output Stream * @throws ioexception */private static void addentry (string base, archivo de archivo, zipoutputstream zoS) tira ioxception {// grado de grado, tales como: /aaa /bbbb.txtstream zoS) Source.getName (); if (fuente.isDirectory ()) {for (archivo archivo: fuente.listFiles ()) {// recursivamente enumere todos los archivos en el directorio y agregue archivos EntryDDentRy (entrada + "/", file, Zos);}} else {FileInputStream Fis = null; bufferedininin Bis = null; thy {byte {byte [] * 10]; fis = new FileInputStream (fuente); bis = new BufferedInputStream (FIS, buffer.length); int read = 0; Zos.putNextEntry (new ZipEntry (entrada)); while ((read = bis.read (buffer, 0, buffer.length))! = -1) {Zos.write (buffer, 0, read);}} zo.closeEntry ();} finalmente {ioutil.CloSequietty (bis, fis);}}}/*** unzip archivo*** @param filepath* compress file stath/public staty filePath) {archivo fuente = nuevo archivo (filePath); if (fuente.exists ()) {ZipInputStream zis = null; bufferingutputStream bos = null; try {zis = new ZipInputStream (nuevo FileInputStream (Source)); ZipEntry Entry = Null; while (Innye = Zis.getNextEntry ())! = Null &&! Entry.isDirectory ())) entry.getName ()); if (! Target.getParentFile (). Exists ())) {// Cree el directorio principal del archivo Target.getParentFile (). MkDirs ();} // Escribir en el archivo bos = new BuffeDutputStream (nuevo FileOutPutSeam (Target))); int = 0; byte [] buffer = new byte [1024 * 10]; zis.read (buffer, 0, buffer.length))! = -1) {bos.write (buffer, 0, read);} bos.flush ();} zis.closeentry ();} catch (ioException e) {throw new runtimeException (e);} finalmente {iOutil.cloosequiTly (zis, bos);}}}}}} Main (String [] args) {String TargetPath = "E: // Win7 Wallpaper"; File File = Ziputil.zip (TargetPath); System.out.println (archivo); Ziputil.unzip ("f: // win7 wallpaper.zip");}}La siguiente es una descripción del idioma Java para cerrar uno o más objetos de transmisión a través de la clase de herramientas de flujo IO para obtener una lista de objetos de flujo cerrado, de la siguiente manera:
paquete com.utility.io; import java.io.cloSable; import java.io.ioException;/** * Io Stream Tool Class * * @author liujiduo * */public class Ioutil {/** * Cerrar uno o más objetos de transmisión * * @ParamLeables * Lista de transmisión cerrada de objetos de transmisión * @Throws IoException */public static void Closes (Closeable Closeable Closeable ... {if (cierrebles! = null) {for (cerrable cierre: cierrebles) {if (cerrable! = null) {cerrable.close ();}}}}}/*** cerrar uno o más objetos de transmisión** @param cierrebles* de los objetos de flujo que pueden ser cerrados*/público estatic estaticial (cierre ... cierre ... cierres) {tiend {Close (cierre);} Catch (ioexception e) {// no hacer nada}}}Resumir
Lo anterior es todo el contenido de este artículo sobre el ejemplo de código del método de uso de Ziputil de herramienta de archivo comprimido Java, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo.