Deflater — ZLIB 압축 지원 클래스
Deflater — ZLIB 압축 지원 클래스
널리 쓰이는 ZLIB 압축 라이브러리를 사용한 일반 목적의 압축을 지원하는 클래스예요. 바이트 시퀀스를 ZLIB 압축 데이터 형식으로 압축해요.
본문
public class Deflater extends Object
ZLIB 압축 라이브러리는 원래 PNG 그래픽 표준의 일부로 개발됐고 특허로 보호되지 않아요. 입력 바이트 시퀀스는 setInput() 메서드 중 하나를 통해 바이트 배열 또는 바이트 버퍼로 제공되고, 출력 바이트 시퀀스는 deflate() 메서드에 전달된 출력 배열·버퍼에 기록돼요.
간단한 압축·해제 예시:
String inputString = "blahblahblah";
byte[] input = inputString.getBytes("UTF-8");
byte[] output = new byte[100];
Deflater compresser = new Deflater();
compresser.setInput(input);
compresser.finish();
int compressedDataLength = compresser.deflate(output);
compresser.end();
주요 생성자
Deflater()— 기본 압축 수준으로 새 압축기를 생성해요.Deflater(int level)— 지정된 압축 수준으로 압축기를 생성해요.Deflater(int level, boolean nowrap)— ZLIB 헤더·체크섬 사용 여부를 지정해 생성해요.
주요 메서드
-
setInput(byte[] b)— 압축할 입력 데이터를 설정해요. -
deflate(byte[] b)— 입력 데이터를 압축하고 압축 바이트를 버퍼에 채워요. -
finish()— 압축 입력 데이터의 끝을 호출해 추가 데이터를 기대하지 않음을 나타내요. -
needsInput()— 입력 데이터가 남아 있지 않으면true를 반환해요. -
finished()— 압축이 끝났으면true를 반환해요. -
getTotalIn()/getTotalOut()— 지금까지 입력·출력된 총 바이트 수를 반환해요. -
end()— 압축기를 닫고 시스템 리소스를 폐기해요.end()후 다른 메서드 호출은NullPointerException을 던져요. -
도입 시점(Since): 1.1