Compactando um arquivo usando DeflaterOutputStream
Esta classe implementa um filtro de fluxo de saída para compactar dados no formato de compactação 'deflate'. Também é usado como base para outros tipos de filtros de compactação, como GZIPOutputStream. Métodos importantes:- Leve um arquivo de entrada ‘arquivo 1’ para FileInputStream para leitura de dados.
- Pegue o arquivo de saída ‘arquivo 2’ e atribua-o a FileOutputStream . Isso ajudará a gravar dados em ‘file2’.
- Atribua FileOutputStream a DeflaterOutputStream para compactar os dados.
- Agora leia os dados de FileInputStream e grave-os em DeflaterOutputStream. Ele compactará os dados e os enviará para FileOutputStream, que armazena os dados compactados no arquivo de saída.
- O arquivo com o nome ‘file2’ agora contém dados compactados e precisamos obter os dados descompactados originais deste arquivo.
- Atribua o arquivo compactado ‘file2’ a FileInputStream. Isso ajuda a ler os dados do ‘arquivo2’.
- Atribua o arquivo de saída ‘file3’ a FileOutputStream. Isso ajudará a gravar dados descompactados em ‘file3’.
- Agora leia os dados não compactados do InflaterInputStream e grave-os no FileOutputStream. Isso gravará os dados descompactados em ‘file3’.
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(); } }
Descompactando um arquivo usando InflaterInputStream
Esta classe implementa um filtro de fluxo para descompactar dados no formato de compactação 'deflate'. Também é usado como base para outros filtros de descompressão, como GZIPInputStream. Métodos importantes: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(); } }
Criar questionário