Java cung cấp class InflaterInputStream để giải nén file nén.
Phương thức read() đọc từng byte dữ liệu nén từ input stream. Để giải nén:
- Tạo FileInputStream với đường dẫn file nén.
- Tạo FileOutputStream với đường dẫn file output (file giải nén).
- Tạo InflaterInputStream với FileInputStream trên.
- Đọc nội dung InflaterInputStream và ghi bằng write() của FileOutputStream.
Ví dụ
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.InflaterInputStream; public class DeCompressingFiles { public static void main(String args[]) throws IOException { String inputPath ="D:\\ExampleDirectory\\compressed.txt"; //Instantiating the FileInputStream FileInputStream inputStream = new FileInputStream(inputPath); String outputpath = "D:\\ExampleDirectory\\output.jpg"; FileOutputStream outputStream = new FileOutputStream(outputpath); InflaterInputStream decompresser = new InflaterInputStream(inputStream); int contents; while ((contents=decompresser.read())!=-1){ outputStream.write(contents); } //close the file outputStream.close(); decompresser.close(); System.out.println("File un-compressed......."); } }
Kết quả
File un-compressed.......