Comprimir un fitxer amb DeflaterOutputStream
Aquesta classe implementa un filtre de flux de sortida per comprimir dades en el format de compressió "desinflat". També s'utilitza com a base per a altres tipus de filtres de compressió com GZIPOutputStream. Mètodes importants:- Agafeu un fitxer d'entrada "fitxer 1" a FileInputStream per llegir les dades.
- Agafeu el fitxer de sortida "fitxer 2" i assigneu-lo a FileOutputStream . Això ajudarà a escriure dades a "fitxer2".
- Assigna FileOutputStream a DeflaterOutputStream per comprimir les dades.
- Ara llegiu les dades de FileInputStream i escriviu-les a DeflaterOutputStream. Comprimirà les dades i les enviarà a FileOutputStream, que emmagatzema les dades comprimides al fitxer de sortida.
- El fitxer amb el nom "fitxer2" ara conté dades comprimides i hem d'obtenir dades originals descomprimides d'aquest fitxer.
- Assigna el fitxer comprimit "fitxer2" a FileInputStream. Això ajuda a llegir dades de "fitxer2".
- Assigna el fitxer de sortida "fitxer3" a FileOutputStream. Això ajudarà a escriure dades no comprimides a "fitxer3".
- Ara llegiu les dades no comprimides d'InflaterInputStream i escriviu-les a FileOutputStream. Això escriurà les dades no comprimides a "fitxer3".
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(); } }
Descomprimir un fitxer mitjançant InflaterInputStream
Aquesta classe implementa un filtre de flux per descomprimir dades en el format de compressió "desinflat". També s'utilitza com a base per a altres filtres de descompressió com GZIPInputStream. Mètodes importants: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 un qüestionari