ZipOutputStream — ZIP 형식 파일 쓰기 출력 스트림

ZipOutputStream — ZIP 형식 파일 쓰기 출력 스트림

ZIP 파일 형식으로 파일을 쓰기 위한 출력 스트림 필터를 구현하는 클래스예요. 압축 및 비압축 엔트리를 모두 지원해요.

출처: Java API Reference

본문

public class ZipOutputStream extends DeflaterOutputStream

ZIP 파일 쓰기

putNextEntry(ZipEntry)로 새 엔트리를 시작하고, 데이터를 쓴 뒤 closeEntry()로 현재 엔트리를 마무리해요. 모든 엔트리를 쓴 후 finish() 또는 close()를 호출해 중앙 디렉터리를 기록해요.

try (ZipOutputStream zos = new ZipOutputStream(Files.newOutputStream(Path.of("out.zip")))) {
    zos.putNextEntry(new ZipEntry("hello.txt"));
    zos.write("Hello, world!".getBytes());
    zos.closeEntry();
}

주요 생성자

  • ZipOutputStream(OutputStream out) — 기본 문자셋으로 ZIP 출력 스트림을 생성해요.
  • ZipOutputStream(OutputStream out, Charset charset) — 지정된 문자셋으로 생성해요.

주요 메서드

  • setMethod(int method) — 기본 압축 방법(STORED 또는 DEFLATED)을 설정해요.

  • setLevel(int level)DEFLATED 엔트리의 압축 수준을 설정해요.

  • putNextEntry(ZipEntry e) — 새 ZIP 엔트리를 시작해요.

  • closeEntry() — 현재 ZIP 엔트리를 닫아요.

  • write(byte[] b, int off, int len) — 현재 엔트리의 데이터를 써요.

  • finish() — 기본 스트림을 닫지 않고 ZIP 파일 쓰기를 끝내요.

  • close() — ZIP 파일을 마무리하고 기본 출력 스트림을 닫아요.

  • 도입 시점(Since): 1.1

더 알아보기 (Learn more)