[JAVA] java로 zip파일 만들기

jihun Choi·2023년 5월 4일
0

안녕하세요 오늘은 java로 로컬컴퓨터에 있는 파일들을 zip파일로 압축해 보겠습니다
java.util.zip 기본적으로 제공하는 패키지를 이용하여 zip 파일을 압축할수 있습니다

먼저, 폴더에 파일을 셋팅해줍니다

저는 데스크탑에 무제 폴더란 폴더를 생성하고 그안에 image1.png, image2.png, image3.png를 셋팅하였습니다

이후 ZipEntry, ZipFile, ZipOutputStream 클래스를 사용해 파일들을 zip파일로 압축해줍니다

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

public void makeZip(String filePath, List<String> fileNames) throws Exception{

    File zipFile = new File(filePath, "압축파일.zip");
    byte[] buf = new byte[4096];

    try(ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile))){
        for(String fileName : fileNames){
            File file = new File(filePath, fileName);

            try(FileInputStream in = new FileInputStream(file)){
                 ZipEntry zf = new ZipEntry(file.getName());
                 out.putNextEntry(zf);
                 int len = 0;
                 while((len = in.read(buf)) > 0) {
                     out.write(buf, 0, len);
                 }

                 out.closeEntry();
            }
        }
     }
}    
  • try(resource)구문은 java7버젼부터 나온 추가된 문법으로 InputStream 처럼 프로그램이 끝날떄 닫혀야 하는(close) 객체입니다

자바코드 작성후 실행결과 zip파일이 정상적으로 나오는것을 확인할수 있었습니다 다음번엔 더 재미있는 소재로 찾아뵙겠습니다

profile
성장을 위해 열심히 노력하는 개발자 입니다

0개의 댓글