Kami sering menggunakan perangkat lunak kompresi seperti WinZip untuk mengompres file untuk transmisi yang mudah. Java juga menyediakan kelas yang mengompres file untuk mengurangi jumlah data selama transmisi, yang dapat dengan mudah memampatkan file ke dalam ZIP, JAR, GZIP, dll. GZIP terutama merupakan file terkompresi di bawah sistem Linux.
Berikut ini terutama berbicara tentang file terkompresi dalam bentuk zip, dan file terkompresi dalam bentuk JAR dan GZIP juga digunakan dengan cara yang sama.
ZIP adalah bentuk kompresi yang sangat umum. Di Java, untuk mengimplementasikan kompresi zip, penggunaan utama kelas dalam paket java.util.zip. Terutama termasuk zipfile, zipoutputStream, zipInputStream dan zipentry. ZipoutputStream digunakan untuk mengompres file, ZipInputStream dan zipfile digunakan untuk mendekompres file, dan zipentry digunakan selama kompresi dan dekompresi. Dalam file terkompresi java zip, setiap subfile adalah objek zipentry.
File Terkompresi:
Impor java.io.file; impor java.io.fileInputStream; impor java.io.fileoutputStream; impor java.io.ioException; import java.io.inputStream; impor java.nio.charset.charset; impor java.util.zip.zipentry; impor; ZipOutputStreamTest {public static void main (string args []) melempar ioException {test1 (); test2 (); } public static void test1 () melempar IoException {ZipOutputStream zos = new ZipoutputStream (FileOutputStream baru ("d: //testzip.zip"), charset.forname ("gbk")); // instantiate objek zipentry bernama ab.txt zipentry entri = new zipentry ("ab.txt"); // atur komentar zos.setComment ("tes zip untuk file tunggal"); // Tambahkan objek zipentry yang dihasilkan ke dalam file terkompresi, dan kemudian konten yang ditulis ke dalam file terkompresi akan ditempatkan di objek zipentry ini zos.putNextEntry (entri); InputStream adalah = FileInputStream baru ("d: //ab.txt"); int len = 0; while ((len = is.read ())! = -1) zos.write (len); is.close (); zos.close (); } public static void test2 () melempar ioException {file infile = file baru ("d: // test"); ZipoutputStream zos = new zipoutputStream (fileoutputStream baru ("d: //test.zip"), charset.forname ("gbk")); zos.setComment ("pemrosesan multi-file"); Zipfile (Infile, Zos, ""); zos.close (); } public static void zipFile (file infile, zipoutputStream zos, string dir) melempar ioException {if (infile.isdirectory ()) {file [] file = infile.listfile (); untuk (file file: file) zipfile (file, zos, dir + "//" + infile.getname ()); } else {string entryname = null; if (! "". Equals (dir)) entryname = dir + "//" + infile.getname (); lain entryname = infile.getName (); Entri zipentry = zipentry baru (entriName); zos.putNextEntry (entri); InputStream adalah = FileInputStream baru (infile); int len = 0; while ((len = is.read ())! = -1) zos.write (len); is.close (); }}} Unzip file:
Impor java.io.file; impor java.io.fileInputStream; impor java.io.fileoutputStream; import java.io.ioException; import java.io.inputStream; import java.io.outputstream; impor java.nio.charset.charset; impor java.utilute.utilute. java.util.zip.ZipFile;import java.util.zip.ZipInputStream;public class ZipInputStreamTest { public static void main(String args[]) throws IOException { File file = new File("D://test.zip");//Compress file ZipFile zipFile = new ZipFile(file);//Instantiate ZipFile, masing -masing file terkompresi zip dapat direpresentasikan sebagai zipfile // instantiate objek zipInputStream dari file terkompresi zip, Anda dapat menggunakan metode getNextEntry () dari kelas ini untuk mendapatkan setiap zipinputStream zipinputStream = new) ("charsetsstream (file new." Zipentry zipentry = null; while ((zipEntry = zipInputStream.getNextEntry ())! = null) {string fileName = zipEntry.getName (); File temp = file baru ("d: // unpacktest //" + filename); if (! Temp.getParentFile (). Exists ()) temp.getParentFile (). mkdirs (); OutputStream OS = FileOutputStream baru (TEMP); // Dapatkan aliran input zipentry spesifik melalui metode GetInputStream ZipFile inputStream adalah = zipfile.getInputStream (zipEntry); int len = 0; while ((len = is.read ())! = -1) os.write (len); os.close (); is.close (); } zipInputStream.close (); }}Di atas adalah kompilasi informasi tentang file kompresi dan dekompresi Java. Kami akan terus menambahkan informasi yang relevan di masa mendatang. Terima kasih atas dukungan Anda untuk situs web ini!