Cet exemple utilise le flux de saisie et de sortie ZIP de Java pour compresser et décompresser les fichiers. La partie précédente du code met en œuvre l'acquisition de chemins de fichier, les modifications des noms de fichiers compressés, etc., comme suit:
Package com.utility.zip; Importer java.io.BufferedInputStream; Importer java.io.bufferedoutputStream; Importer java.io.file; import java.io.fileinputStream; Importer java.io.fileoutputStream; Importer java.io.fileoutStream; Importer com.utility.io.ioutil; Java's Zip Inting and Sortie Stream * * @author liujiduo * * / public final class ziputil {private ziputil () {// vide} / ** * Fichier compressé * * @param filepath * Fichier Path à être compressé * @return Fichier compressé * / public static Fichier Zip (String FilePath) {fichier Target = Null; Fichier Source = New Fichier (FilePath); (Source.exists ()) {// Nom de fichier compressé = Source FileName.ZipString ZipName = Source.GetName () + ".Zip"; Target = new File (Source.GetParent (), Zipname); if (Target.Exists ()) {Target.Delete (); // Supprimer l'ancien fichier} FileOutputStream Fos = null; ZipOutStream ZOS = null; null; {fos = new FileOutputStream (Target); zos = new ZipOutputStream (new BufferedOutputStream (fos)); // Ajouter le fichier correspondant à entrée ADSEntry ("/", source, zos);} Catch (ioException e) {Throw RuntimeException (e);} Enfin {ioutil.closequetly (zos, fos);} Target;} / ** * Scan pour ajouter l'entrée du fichier * * @param base * Path de base * @param source * fichier source * @param zos * Zip File Sortie Stream * @throws ioexception * / private static void Addentry (String Base, fichier source, zipOutputStream zos) lance ioexception {// grade by Director source.getName (); if (source.isDirectory ()) {for (fichier file: source.listFiles ()) {// Répertoriez tous les fichiers dans le répertoire et ajoutez des fichiers entrée Adventry (entrée + "/", fichier, zos);}} else {fileInputStream fis = null; BuffredInputStream bis = null; Try {byte [] Buffer = by.Te [by.Te [byTe [byTe [by.Te; 10]; fis = new FileInputStream (Source); bis = new BufferedInputStream (fis, buffer.length); int read = 0; zos.putNextSentry (new ZipEntry (entrée)); tandis que ((read = bis.read (buffer, 0, buffer.length))! = -1) {zos.write (tampon, 0, read);} zos.closeEntry ();} enfin {ioutil.closequetly (bis, fis);}}}} / ** * unzip file * * @param filepat filepath) {file source = new File (filePath); if (source.exists ()) {zipinputStream zis = null; bufferedOutputStream bos = null; try {zis = new ZipinputStream (new FileInputStream (source)); zipentry entrée = null; while ((entrée = zis.getnextentRy ())! = Null &&! Entrée.IsDirectory ()) {file Target = New Fidre. Entry.getName ()); if (! Target.GetParentFile (). existant ()) {// Créer le répertoire parent du fichier Target.getParentFile (). MKDIRS ();} // Écrivez dans le fichier bos = new BufferedoutputStream (new FileoutputStream (Target)); int read = 0; byte [] tampon = new Byte [1024 * 10]; zis.read (buffer, 0, buffer.length))! = -1) {bos.write (tampon, 0, read);} bos.flush ();} zis.closeEntry ();} catch (ioException e) {throw runtimeexception (e);} Enfin {ioutil. main (String [] args) {String TargetPath = "e: // win7 wallpaper"; file file = ziputil.zip (targetPath); System.out.println (fichier); ziputil.unzip ("f: // win7 wallpaper.zip");}}Ce qui suit est une description de la langue Java pour la fermeture d'un ou plusieurs objets de flux via la classe d'outils IO Stream pour obtenir une liste d'objets de flux fermé, comme suit:
Package com.utility.io; Importer java.io.closeable; import java.io.ioException; / ** * io Stream Tool class * * @author liujiduo * * / public class ioutil {/ ** * clôture un ou plusieurs objets de flux * * @param closebles * list of close stream objets * @throws ioexception * / public static static closer (Closeable ... {if (Closeables! = null) {pour (fermeable clôtuable: fermesables) {if (clôture! = null) {clôture.close ();}}}}} / ** * Fermer un ou plusieurs objets de flux * * @param Closebles * Liste des objets de flux qui peuvent être fermés * / public static vide CloseQuiely (Closable ... Closage ... Closeable) {essaie {Close (Closeables);} catch (ioException e) {// ne rien faire}}Résumer
Ce qui précède est l'intégralité du contenu de cet article sur l'exemple de code de la méthode d'utilisation de l'outil de fichier compressé Java, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler.