Rumah >Java >javaTutorial >Memampatkan dan membongkar fail di Java

Memampatkan dan membongkar fail di Java

Barbara Streisand
Barbara Streisandasal
2025-02-07 11:56:15684semak imbas

Compressing and Decompressing files in Java

Artikel ini meneroka pemampatan fail dan penyahmampatan di Java, memberi tumpuan kepada kelas

dan DeflaterOutputStream untuk pemampatan deflate. Kelas ini menawarkan cara yang cekap untuk mengendalikan data termampat. InflaterInputStream

Konsep teras:

Java menyediakan sokongan terbina dalam untuk memampatkan dan membongkar fail menggunakan pakej

. java.util.zip memampatkan data ke dalam format deflate (sering digunakan dalam arkib zip), manakala DeflaterOutputStream mengurangkan data dalam format yang sama. InflaterInputStream Contohnya: memampatkan fail ke zip

Contoh ini menunjukkan cara memampatkan fail ke dalam arkib zip:

Algoritma

untuk pemampatan fail/penyahmampatan:
<code class="language-java">try {
    File file = new File(filePath);
    String zipFileName = file.getName() + ".zip";
    FileOutputStream fos = new FileOutputStream(zipFileName);
    ZipOutputStream zos = new ZipOutputStream(fos);
    zos.putNextEntry(new ZipEntry(file.getName()));
    byte[] bytes = Files.readAllBytes(Paths.get(filePath));
    zos.write(bytes, 0, bytes.length);
    zos.closeEntry();
    zos.close();
} catch (FileNotFoundException ex) {
    System.err.format("File not found: %s%n", filePath);
} catch (IOException ex) {
    System.err.println("I/O error: " + ex);
}</code>

Algoritma umum untuk pemampatan fail dan penyahmampatan di Java melibatkan langkah -langkah ini:

Inisialisasi:
    Import kelas yang diperlukan, tentukan laluan fail.
  1. Mampatan:
  2. Buat
  3. dan untuk menulis data termampat. Baca data dari fail sumber menggunakan , tulis ke FileOutputStream, dan aliran tutup. DeflaterOutputStream FileInputStream DeflaterOutputStream Decompression:
  4. Buat
  5. dan untuk membaca dan mengurih data. Tulis data decompressed ke fail destinasi menggunakan , dan aliran tutup. FileInputStream InflaterInputStream FileOutputStream Pengendalian ralat:
  6. Melaksanakan pengendalian ralat yang mantap (mis., ) Untuk menguruskan potensi
  7. . try-catch IOExceptions Contoh sintaks yang dipermudahkan:

Walaupun lengkap, contoh yang mantap memerlukan lebih banyak pengendalian ralat dan pengurusan jalur fail, coretan sintaks mudah menggambarkan operasi teras:

pemampatan:

penyahmampatan:

<code class="language-java">FileInputStream inputStream = new FileInputStream(inputPath);
FileOutputStream outputStream = new FileOutputStream(outputPath);
DeflaterOutputStream compressor = new DeflaterOutputStream(outputStream);
// ... write data from inputStream to compressor ...
compressor.close();</code>

Pendekatan:

<code class="language-java">FileInputStream inputStream = new FileInputStream(inputPath);
FileOutputStream outputStream = new FileOutputStream(outputPath);
InflaterInputStream decompressor = new InflaterInputStream(inputStream);
// ... write data from decompressor to outputStream ...
decompressor.close();</code>

Dua pendekatan utama wujud: memampatkan/menyegarkan fail tunggal dan mengendalikan pelbagai fail atau direktori. Contoh-contoh yang disediakan sebelum ini dalam teks asal menunjukkan mampatan fail tunggal menggunakan dan contoh yang lebih kompleks untuk pelbagai fail. Pengendalian direktori memerlukan pemprosesan rekursif untuk melintasi struktur direktori. Ambil perhatian bahawa contoh kod asal tidak mempunyai pengendalian laluan fail yang betul dan pengurusan ralat, yang membawa kepada . Sentiasa pastikan pengendalian ralat yang mantap dan tentukan laluan fail yang betul dalam kod anda.

ZipOutputStream Kesimpulan: FileNotFoundException

Java menawarkan alat yang berkuasa untuk pemampatan fail dan penyahmampatan. Memahami DeflaterOutputStream dan InflaterInputStream bersama -sama dengan pengendalian ralat yang betul dan pengurusan laluan fail adalah penting untuk mewujudkan utiliti mampatan yang boleh dipercayai dan cekap. Ingatlah untuk sentiasa mengendalikan pengecualian yang berpotensi dan memberikan mesej ralat yang sesuai kepada pengguna.

Atas ialah kandungan terperinci Memampatkan dan membongkar fail di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn