Inflater — ZLIB 압축 해제 지원 클래스

Inflater — ZLIB 압축 해제 지원 클래스

널리 쓰이는 ZLIB 압축 라이브러리를 사용한 일반 목적의 압축 해제를 지원하는 클래스예요. 압축된 ZLIB 바이트 시퀀스를 압축 해제(inflate) 해요.

출처: Java API Reference

본문

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

더 알아보기 (Learn more)