Inflater — ZLIB 압축 해제 지원 클래스
Inflater — ZLIB 압축 해제 지원 클래스
널리 쓰이는 ZLIB 압축 라이브러리를 사용한 일반 목적의 압축 해제를 지원하는 클래스예요. 압축된 ZLIB 바이트 시퀀스를 압축 해제(inflate) 해요.
본문
public class Inflater extends Object
입력 바이트 시퀀스는 setInput() 메서드 중 하나를 통해 바이트 배열 또는 바이트 버퍼로 제공되고, 출력 바이트 시퀀스는 inflate() 메서드에 전달된 출력 배열·버퍼에 기록돼요.
간단한 압축 해제 예시:
Inflater decompresser = new Inflater();
decompresser.setInput(output, 0, compressedDataLength);
byte[] result = new byte[100];
int resultLength = decompresser.inflate(result);
decompresser.end();
주요 생성자
Inflater()— 새 압축 해제기를 생성해요.Inflater(boolean nowrap)— ZLIB 헤더·체크섬 기대 여부를 지정해 생성해요.
주요 메서드
setInput(byte[] b)— 압축 해제할 입력 데이터를 설정해요.inflate(byte[] b)— 압축을 해제하고 바이트를 버퍼에 채워요. 압축 해제 전에needsInput()으로 입력이 필요한지 확인할 수 있어요.needsInput()— 압축 해제할 입력 데이터가 남아 있지 않으면true를 반환해요.needsDictionary()— 사전 설정이 필요하면true를 반환해요.finished()— 압축 해제가 끝났으면true를 반환해요.getTotalIn()/getTotalOut()— 지금까지 입력·출력된 총 바이트 수를 반환해요.end()— 압축 해제기를 닫고 시스템 리소스를 폐기해요.
압축 데이터의 형식이 잘못되면 DataFormatException 이 던져져요.
- 도입 시점(Since): 1.1