Мы часто используем программное обеспечение для сжатия, такое как Winzip, для сжатия файлов для легкой передачи. Java также предоставляет класс, который сжимает файлы, чтобы уменьшить объем данных во время передачи, который может легко сжимать файлы в ZIP, JAR, GZIP и т. Д. GZIP - это в основном сжатый файл в системе Linux.
Следующие в основном рассказываются о сжатых файлах в виде Zip, и сжатые файлы в форме JAR и GZIP также используются аналогичным образом.
ZIP - очень распространенная форма сжатия. В Java для реализации сжатия ZIP, основного использования классов в пакете java.util.zip. В основном включайте Zipfile, ZipoutputStream, ZipinputStream и Zipentry. ZipoutputStream используется для сжатия файлов, ZipinputStream и Zipfile используются для декомпрессии файлов, а Zipentry используется во время сжатия и декомпрессии. В файлах Java Zip сжата каждый подфил представляет собой объект Zipentry.
Сжатые файлы:
Импорт java.io.file; импорт java.io.fileinputstream; import java.io.fileoutputstream; импорт java.io.ioexception; импорт java.io.inputStream; импорт java.nio.charset.charset; импорт java.util.zip.zipentry; импорт java.til.zip. Zipoutputstreamtest {public static void main (String args []) бросает ioException {test1 (); test2 (); } public static void test1 () бросает ioException {zipoutputStream Zos = new ZipOutputStream (new FileOutputStream ("d: //testzip.zip"), charset.forname ("gbk")); // создание объекта Zipentry с именем ab.txt Zipentry intry = new Zipentry ("ab.txt"); // Установить комментарий Zos.setComment ("ZIP -тест на один файл"); // Добавить сгенерированный объект Zipentry в сжатый файл, а затем содержимое, записанное в сжатый файл, будет размещен в этом объекте Zos.putNextExtentry (entry); InputStream IS = new FileInputStream ("d: //ab.txt"); int len = 0; while ((len = is.read ())! = -1) zos.write (len); is.close (); zos.close (); } public static void test2 () бросает ioException {file infile = new File ("d: // test"); Zipoutputstream Zos = new ZipOutputStream (new FileOutputStream ("d: //test.zip"), charset.forname ("gbk")); Zos.SetComment ("многофилирующая обработка"); Zipfile (Infile, Zos, ""); zos.close (); } public static void Zipfile (файл Infile, ZipoutputStream Zos, String dir) бросает ioException {if (infile.isdirectory ()) {file [] files = infile.listfiles (); для (файл файла: файлы) Zipfile (файл, Zos, dir + "//" + infile.getName ()); } else {String intryName = null; if (! "". equals (dir)) rentname = dir + "//" + infile.getName (); else rentname = infile.getName (); Zipentry intry = new Zipentry (rentname); zos.putnextentry (inting); InputStream IS = New FileInputStream (Infile); int len = 0; while ((len = is.read ())! = -1) zos.write (len); is.close (); }}} Разанипируйте файл:
Импорт java.io.file; import java.io.fileinputstream; import java.io.fileoutputstream; импорт java.io.ioexception; импорт java.io.inputstream; импорт java.io.outputstream; import java.nio.charset. java.util.zip.zipfile; import java.util.zip.zipinputStream; открытый класс ZipinputStreamTest {public static void main (string args []) throws ioException {file file = new File ("//test.zip"); // compresse zipfile zipfile = new zipfile (file zipfile); Каждый сжатый файл Zip может быть представлен в виде Zipfile // создания объекта ZipinputStream сжатого файла Zip, вы можете использовать метод getNextentry () этого класса для получения каждого ZipinputStream ZipinputStream = new ZipinputStream (new FileInptream (file), charset.); Zipentry Zipentry = NULL; while ((zipentry = zipinputstream.getNextEntry ())! = null) {string filename = Zipentry.getName (); File temp = new File ("d: // unpacktest //" + filename); if (! temp.getParentFile (). существует ()) temp.getParentFile (). mkdirs (); OutputStream OS = new FileOutputStream (temp); // Получить конкретный входной поток Zipentry через метод Zipfile getInputStream InputStream IS = Zipfile.getInputStream (Zipentry); int len = 0; while ((len = is.read ())! = -1) os.write (len); os.close (); is.close (); } zipinputstream.close (); }}Выше приведено сборник информации о файлах сжатия и декомпрессии Java. Мы будем продолжать добавлять соответствующую информацию в будущем. Спасибо за поддержку этого сайта!