Java에서 파일 압축 풀기

Sheeraz Gul 2023년10월12일
Java에서 파일 압축 풀기

Java에 내장된 Zip API를 사용하여 zip 파일을 추출할 수 있습니다. 이 튜토리얼은 Java에서 zip 파일을 추출하는 방법을 보여줍니다.

Java에서 파일 압축 풀기

java.util.zip은 Java에서 zip 파일의 압축을 푸는 데 사용됩니다. ZipInputStream은 zip 파일을 읽고 압축을 푸는 데 사용되는 기본 클래스입니다.

Java에서 zip 파일을 추출하려면 아래 단계를 따르십시오.

  • ZipInputStreamFileInputStream을 사용하여 zip 파일을 읽습니다.
  • getNextEntry() 메소드를 사용하여 항목을 읽습니다.
  • 이제 바이트와 함께 read() 메서드를 사용하여 이진 데이터를 읽습니다.
  • closeEntry() 메소드를 사용하여 항목을 닫습니다.
  • 마지막으로 zip 파일을 닫습니다.

입력 및 대상 경로를 취하고 이러한 단계를 구현하기 위해 파일을 추출하는 함수를 만들었습니다. zip 파일은 아래에 있습니다.

압축 파일

위의 방법을 Java로 구현하여 그림과 같은 zip 파일을 추출해 봅시다.

package delftstack;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class Java_Unzip {
  private static final int BUFFER_SIZE = 4096;
  public static void unzip(String ZipFilePath, String DestFilePath) throws IOException {
    File Destination_Directory = new File(DestFilePath);
    if (!Destination_Directory.exists()) {
      Destination_Directory.mkdir();
    }
    ZipInputStream Zip_Input_Stream = new ZipInputStream(new FileInputStream(ZipFilePath));
    ZipEntry Zip_Entry = Zip_Input_Stream.getNextEntry();

    while (Zip_Entry != null) {
      String File_Path = DestFilePath + File.separator + Zip_Entry.getName();
      if (!Zip_Entry.isDirectory()) {
        extractFile(Zip_Input_Stream, File_Path);
      } else {
        File directory = new File(File_Path);
        directory.mkdirs();
      }
      Zip_Input_Stream.closeEntry();
      Zip_Entry = Zip_Input_Stream.getNextEntry();
    }
    Zip_Input_Stream.close();
  }

  private static void extractFile(ZipInputStream Zip_Input_Stream, String File_Path)
      throws IOException {
    BufferedOutputStream Buffered_Output_Stream =
        new BufferedOutputStream(new FileOutputStream(File_Path));
    byte[] Bytes = new byte[BUFFER_SIZE];
    int Read_Byte = 0;
    while ((Read_Byte = Zip_Input_Stream.read(Bytes)) != -1) {
      Buffered_Output_Stream.write(Bytes, 0, Read_Byte);
    }
    Buffered_Output_Stream.close();
  }

  public static void main(String[] args) throws IOException {
    String ZipFilePath = "delftstack.zip";
    String DestFilePath = "C:\\Users\\Sheeraz\\eclipse-workspace\\Demos";
    unzip(ZipFilePath, DestFilePath);
    System.out.println("Zip File extracted Successfully");
  }
}

위 코드의 출력은 아래와 같습니다.

Zip File extracted Successfully

파일 압축 풀기

작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook