Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีบีบอัดไฟล์ (Compress) ใน Java

คลาส DeflaterOutputStream ของ Java ใช้สำหรับบีบอัดข้อมูลที่ให้มาและสตรีมออกไปยังปลายทาง

เมธอด write() ของคลาสนี้รับข้อมูล (ในรูป integer และ byte format) บีบอัดมัน และ เขียนไปยังปลายทางของอ็อบเจกต์ DeflaterOutputStream ปัจจุบัน เพื่อบีบอัดไฟล์ด้วยเมธอดนี้ −

  • สร้างอ็อบเจกต์ FileInputStream โดยส่งพาธของไฟล์ที่จะบีบอัดในรูป String เป็นพารามิเตอร์ให้ constructor
  • สร้างอ็อบเจกต์ FileOutputStream โดยส่งพาธของไฟล์เอาต์พุต ในรูป String เป็นพารามิเตอร์ให้ constructor
  • สร้างอ็อบเจกต์ DeflaterOutputStream โดยส่ง FileOutputStream ที่สร้างไว้ข้างต้น เป็นพารามิเตอร์ให้ constructor
  • จากนั้น อ่านเนื้อหาของไฟล์อินพุต และเขียนโดยใช้เมธอด write() ของคลาส DeflaterOutputStream

ตัวอย่างโค้ด

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.DeflaterOutputStream;

public class CompressingFiles {
    public static void main(String args[]) throws IOException {
        // สร้าง FileInputStream
        String inputPath = "D:\\ExampleDirectory\\logo.jpg";
        FileInputStream inputStream = new FileInputStream(inputPath);
        
        // สร้าง FileOutputStream
        String outputPath = "D:\\ExampleDirectory\\compressedLogo.txt";
        FileOutputStream outputStream = new FileOutputStream(outputPath);
        
        // สร้าง DeflaterOutputStream
        DeflaterOutputStream compresser = new DeflaterOutputStream(outputStream);
        
        int contents;
        while ((contents = inputStream.read()) != -1) {
            compresser.write(contents);
        }
        
        compresser.close();
        System.out.println("File compressed.......");
    }
}

ผลลัพธ์

File compressed.......