본문 바로가기

Java

[Java] 여러 파일을 묶은 하나의 압축파일(Zip) 만들기


배경

- 여러 File들을 읽어서 하나의 압축 파일로 만들 수 없을까?


참고

- http://www.baeldung.com/java-compress-and-uncompress


Junit Test 환경에서 로컬에 파일쓰기

@Test public void testWriteLocalZipFile() throws Exception { String path = "D:\\temp\\yst"; FileOutputStream zipFileOutputStream = new FileOutputStream(path + "/files.zip"); ZipOutputStream zipOutputStream = new ZipOutputStream(zipFileOutputStream); ZipEntry zipEntry = new ZipEntry("test.txt");

zipOutputStream.putNextEntry(zipEntry); zipOutputStream.write("하하하하하\n쓰자".getBytes(StandardCharsets.UTF_8)); ZipEntry zipEntry2 = new ZipEntry("test2.txt");

zipOutputStream.putNextEntry(zipEntry2); zipOutputStream.write("두번째에여...".getBytes(StandardCharsets.UTF_8)); zipOutputStream.close(); zipFileOutputStream.close(); }


Zip파일을 저장할 FileOutputStream과 ZipOutputStream을 생성합니다.


ZipEntry를 통해 Zip파일에 저장할 파일들을 구별합니다.


첫 번째 ZipEntry의 파일명은 test.txt로 되고 write를 통해 test.txt에 내용이 들어갑니다.

두 번째 ZipEntry의 파일명은 test2.txt가 되고 동일한 과정을 진행합니다.






실제로 txt파일을 읽으면 내용도 잘 있는것을 확인할 수 있습니다.