Java의 DeflaterOutputStream 클래스는 주어진 데이터를 압축하고 대상으로 스트리밍하는 데 사용됩니다.
이 클래스의 write() 메서드는 데이터(정수 및 바이트 형식)를 받아 압축하고 현재 DeflaterOutputStream 객체의 대상에 씁니다. 이 방법을 사용하여 파일을 압축하려면 &Minus;
- FileInputStream 만들기 String 형식으로 압축할 파일의 경로를 생성자에 매개변수로 전달하여 객체를 생성합니다.
- FileOutputStream 만들기 생성자에 대한 매개변수로 String 형식의 출력 파일 경로를 전달하여 객체를 생성합니다.
- DeflaterOutputStream 생성 위에서 만든 FileOutputStream을 전달하여 개체 객체를 생성자에 대한 매개변수로 사용합니다.
- 그런 다음 입력 파일의 내용을 읽고 DeflaterOutputStream 클래스의 write() 메서드를 사용하여 작성합니다.
예시
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.DeflaterOutputStream;
public class CompressingFiles {
public static void main(String args[]) throws IOException {
//Instantiating the FileInputStream
String inputPath = "D:\\ExampleDirectory\\logo.jpg";
FileInputStream inputStream = new FileInputStream(inputPath);
//Instantiating the FileOutputStream
String outputPath = "D:\\ExampleDirectory\\compressedLogo.txt";
FileOutputStream outputStream = new FileOutputStream(outputPath);
//Instantiating the DeflaterOutputStream
DeflaterOutputStream compresser = new DeflaterOutputStream(outputStream);
int contents;
while ((contents=inputStream.read())!=-1){
compresser.write(contents);
}
compresser.close();
System.out.println("File compressed.......");
}
} 출력
File compressed.......