Een bestand comprimeren met DeflaterOutputStream
Deze klasse implementeert een uitvoerstroomfilter voor het comprimeren van gegevens in het 'deflate'-compressieformaat. Het wordt ook gebruikt als basis voor andere soorten compressiefilters zoals GZIPOutputStream. Belangrijke methoden:- Neem een invoerbestand ‘bestand 1’ mee naar FileInputStream voor het lezen van gegevens.
- Neem het uitvoerbestand ‘file 2’ en wijs het toe aan FileOutputStream . Dit zal helpen om gegevens in ‘file2’ te schrijven.
- Wijs FileOutputStream toe aan DeflaterOutputStream om de gegevens te comprimeren.
- Lees nu gegevens uit FileInputStream en schrijf deze naar DeflaterOutputStream. Het comprimeert de gegevens en stuurt deze naar FileOutputStream, die de gecomprimeerde gegevens in het uitvoerbestand opslaat.
- Bestand met de naam ‘file2’ bevat nu gecomprimeerde gegevens en we moeten originele gedecomprimeerde gegevens uit dit bestand verkrijgen.
- Wijs het gecomprimeerde bestand ‘file2’ toe aan FileInputStream. Dit helpt om gegevens uit ‘file2’ te lezen.
- Wijs het uitvoerbestand ‘file3’ toe aan FileOutputStream. Dit zal helpen om ongecomprimeerde gegevens in ‘file3’ te schrijven.
- Lees nu de ongecomprimeerde gegevens van InflaterInputStream en schrijf deze naar FileOutputStream. Hierdoor worden de niet-gecomprimeerde gegevens naar ‘file3’ geschreven.
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(); } }
Een bestand decomprimeren met InflaterInputStream
Deze klasse implementeert een streamfilter voor het decomprimeren van gegevens in het 'deflate'-compressieformaat. Het wordt ook gebruikt als basis voor andere decompressiefilters zoals GZIPInputStream. Belangrijke methoden: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(); } }
Quiz maken