DeflaterOutputStream을 사용하여 파일 압축
이 클래스는 'deflate' 압축 형식으로 데이터를 압축하기 위한 출력 스트림 필터를 구현합니다. 또한 GZIPOutputStream과 같은 다른 유형의 압축 필터의 기초로도 사용됩니다. 중요한 방법:- 데이터를 읽기 위해 입력 파일 'file 1'을 FileInputStream으로 가져옵니다.
- 출력 파일 'file 2'를 가져와서 FileOutputStream에 할당합니다. 이는 'file2'에 데이터를 쓰는 데 도움이 됩니다.
- 데이터 압축을 위해 FileOutputStream을 DeflaterOutputStream에 할당합니다.
- 이제 FileInputStream에서 데이터를 읽고 DeflaterOutputStream에 씁니다. 데이터를 압축하고 압축된 데이터를 출력 파일에 저장하는 FileOutputStream으로 보냅니다.
- 이제 'file2'라는 이름의 파일에는 압축된 데이터가 포함되어 있으므로 이 파일에서 압축이 풀린 원본 데이터를 가져와야 합니다.
- FileInputStream에 압축 파일 'file2'를 할당합니다. 이는 'file2'에서 데이터를 읽는 데 도움이 됩니다.
- FileOutputStream에 출력 파일 'file3'을 할당합니다. 이는 압축되지 않은 데이터를 '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(); } }
퀴즈 만들기