Компресиране на файл с помощта на DeflaterOutputStream
Този клас имплементира филтър за изходен поток за компресиране на данни във формат за компресиране 'deflate'. Използва се и като основа за други видове филтри за компресия, като GZIPOutputStream. Важни методи:- Вземете входен файл „файл 1“ във FileInputStream за четене на данни.
- Вземете изходния файл „файл 2“ и го присвоете на FileOutputStream. Това ще помогне за запис на данни във „file2“.
- Присвоете FileOutputStream на DeflaterOutputStream за компресиране на данните.
- Сега прочетете данни от FileInputStream и ги запишете в DeflaterOutputStream. Той ще компресира данните и ще ги изпрати на FileOutputStream, който съхранява компресираните данни в изходния файл.
- Файлът с име „file2“ вече съдържа компресирани данни и трябва да получим оригинални декомпресирани данни от този файл.
- Присвоете компресирания файл „file2“ на FileInputStream. Това помага за четене на данни от „file2“.
- Присвоете изходния файл „file3“ на FileOutputStream. Това ще помогне за запис на некомпресирани данни във „file3“.
- Сега прочетете некомпресирани данни от InflaterInputStream и ги запишете във FileOutputStream. Това ще запише некомпресираните данни във „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(); } }
Декомпресиране на файл с помощта на InflaterInputStream
Този клас имплементира поточен филтър за декомпресиране на данни във формат за компресиране „deflate“. Използва се и като основа за други филтри за декомпресия като 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(); } }
Създаване на тест