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.......