Nous utilisons souvent des logiciels de compression tels que Winzip pour compresser des fichiers pour une transmission facile. Java fournit également une classe qui compresse les fichiers pour réduire la quantité de données pendant la transmission, qui peut facilement compresser les fichiers en zip, jar, gzip, etc. GZIP est principalement un fichier compressé sous le système Linux.
Ce qui suit parle principalement des fichiers compressés sous forme zip, et les fichiers compressés sous forme JAR et GZIP sont également utilisés de la même manière.
Le zip est une forme de compression très courante. Dans Java, pour implémenter la compression ZIP, l'utilisation principale des classes du package java.util.zip. Incluez principalement ZipFile, ZipOutputStream, ZipinputStream et Zipentry. ZipOutputStream est utilisé pour compresser des fichiers, ZipinputStream et ZipFile sont utilisés pour décompresser des fichiers, et Zipentry est utilisé pendant la compression et la décompression. Dans les fichiers compressés Java Zip, chaque sous-fichier est un objet zipentry.
Fichiers compressés:
Importer java.io.file; import java.io.fileInputStream; import java.io.fileoutputStream; import java.io.ioexception; import java.io.inputstream; import java.nio.charset.charse; ZipOutputStreamTest {public static void main (String args []) lève ioException {test1 (); test2 (); } public static void test1 () lève ioException {zipOutputStream zos = new ZipOutputStream (new FileOutputStream ("d: //testzip.zip"), charset.forname ("gbk")); // Instancier un objet Zipentry nommé AB.TXT Zipentry Entry = new Zipentry ("AB.TXT"); // Définir le commentaire zos.setcomment ("Test Zip pour un seul fichier"); // Ajouter l'objet zipentry généré dans le fichier compressé, puis le contenu écrit dans le fichier compressé sera placé dans cet objet ZOS.PUTNEXTENTRY (entrée); InputStream est = new FileInputStream ("d: //ab.txt"); int len = 0; while ((len = is.read ())! = -1) zos.write (len); is.close (); zos.close (); } public static void test2 () lève ioException {file infile = new File ("d: // test"); ZipOutputStream zos = new ZipOutputStream (new FileOutputStream ("d: //test.zip"), charset.forname ("gbk")); zos.setcomment ("traitement multi-fichiers"); zipfile (infile, zos, ""); zos.close (); } public static void zipfile (file infile, zipOutputStream zos, String dir) lève ioException {if (infile.isdirectory ()) {file [] files = infile.listFiles (); pour (fichier de fichier: fichiers) zipfile (fichier, zos, dir + "//" + infile.getName ()); } else {string entryName = null; if (! "". equals (dir)) entryName = dir + "//" + infile.getName (); else entryName = infile.getName (); Zipentry Entry = new Zipentry (entryName); ZOS.PUTNEXTENTRY (ENTRÉE); InputStream est = new FileInputStream (Infile); int len = 0; while ((len = is.read ())! = -1) zos.write (len); is.close (); }}} Décompressez le fichier:
import java.io.file; import java.io.fileInputStream; import java.io.fileoutputStream; import java.io.ioexception; import java.io.inputStream; import; import java.util.zip.zipentRy; import; java.util.zip.zipfile; importer java.util.zip.zipinputStream; public class zipinputStreamTest {public static void main (String args []) lance ioexception {file file = new File ("d: //test.zip"); // compress zipfile zipfile = new zipfile (file); // compress zipfile zipfile) Chaque fichier compressé zip peut être représenté comme un objet ZipFile // Instanciate Un objet ZipinputStream d'un fichier compressé Zip, vous pouvez utiliser la méthode GetNextRy () de cette classe pour obtenir chaque ZipinputStream ZipinputStream = new ZipinputStream (new FileInputStream (file), chasset.forname ("gbk")); Zipentry zipentry = null; while ((zipentry = zipinputStream.getNextStry ())! = null) {String filename = zipentry.getName (); Fichier Temp = nouveau fichier ("d: // dismacktest //" + nom de fichier); if (! temp.getParentFile (). existant ()) temp.getParentFile (). mkDirs (); OutputStream os = new FileOutputStream (temp); // Obtenez le flux d'entrée de zipentry spécifique via la méthode GetInputStream de ZipFile InputStream est = zipFile.getInputStream (Zipentry); int len = 0; while ((len = is.read ())! = -1) os.write (len); os.close (); is.close (); } zipinputStream.close (); }}Ce qui précède est une compilation des informations sur les fichiers de compression et de décompression Java. Nous continuerons d'ajouter des informations pertinentes à l'avenir. Merci pour votre soutien pour ce site Web!