Comprimarea unui fișier folosind DeflaterOutputStream
Această clasă implementează un filtru de flux de ieșire pentru comprimarea datelor în formatul de compresie „deflate”. De asemenea, este folosit ca bază pentru alte tipuri de filtre de compresie, cum ar fi GZIPOutputStream. Metode importante:- Luați un fișier de intrare „fișier 1” la FileInputStream pentru a citi datele.
- Luați fișierul de ieșire „fișierul 2” și atribuiți-l la FileOutputStream. Acest lucru va ajuta la scrierea datelor în „fișier2”.
- Atribuiți FileOutputStream lui DeflaterOutputStream pentru comprimarea datelor.
- Acum citiți datele din FileInputStream și scrieți-le în DeflaterOutputStream. Acesta va comprima datele și le va trimite către FileOutputStream, care stochează datele comprimate în fișierul de ieșire.
- Fișierul cu numele „fișier2” conține acum date comprimate și trebuie să obținem date originale decomprimate din acest fișier.
- Assign the compressed file ‘file2’ to FileInputStream. Acest lucru ajută la citirea datelor din „fișier2”.
- Atribuiți fișierul de ieșire „file3” la FileOutputStream. Acest lucru va ajuta la scrierea datelor necomprimate în „fișier3”.
- Acum citiți datele necomprimate din InflaterInputStream și scrieți-le în FileOutputStream. Aceasta va scrie datele necomprimate în „fișier3”.
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.Deflater; import java.util.zip.DeflaterOutputStream; class zip { public static void main(String[] args) throws IOException { //Assign the original file : file to //FileInputStream for reading data FileInputStream fis=new FileInputStream('file1'); //Assign compressed file:file2 to FileOutputStream FileOutputStream fos=new FileOutputStream('file2'); //Assign FileOutputStream to DeflaterOutputStream DeflaterOutputStream dos=new DeflaterOutputStream(fos); //read data from FileInputStream and write it into DeflaterOutputStream int data; while ((data=fis.read())!=-1) { dos.write(data); } //close the file fis.close(); dos.close(); } }
Decomprimarea unui fișier folosind InflaterInputStream
Această clasă implementează un filtru de flux pentru decomprimarea datelor în formatul de compresie „deflate”. De asemenea, este folosit ca bază pentru alte filtre de decompresie, cum ar fi GZIPInputStream.import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.InflaterInputStream; //Uncompressing a file using an InflaterInputStream class unzip { public static void main(String[] args) throws IOException { //assign Input File : file2 to FileInputStream for reading data FileInputStream fis=new FileInputStream('file2'); //assign output file: file3 to FileOutputStream for reading the data FileOutputStream fos=new FileOutputStream('file3'); //assign inflaterInputStream to FileInputStream for uncompressing the data InflaterInputStream iis=new InflaterInputStream(fis); //read data from inflaterInputStream and write it into FileOutputStream int data; while((data=iis.read())!=-1) { fos.write(data); } //close the files fos.close(); iis.close(); } }
Creați un test