คลาส 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.......