Java 압축 해제 파일 예
Java 압축 해제 파일 예제에 오신 것을 환영합니다. 지난 포스트에서 우리는 java에서 파일과 디렉토리를 압축하는 방법을 배웠습니다. 여기서는 디렉토리에서 생성된 동일한 zip 파일을 다른 출력 디렉토리로 압축 해제합니다.
자바 압축 해제 파일
zip 파일의 압축을 풀려면 ZipInputStream
으로 zip 파일을 읽은 다음 모든 ZipEntry
를 하나씩 읽어야 합니다. 그런 다음 FileOutputStream
을 사용하여 파일 시스템에 씁니다. 출력 디렉토리가 존재하지 않고 zip 파일에 중첩 디렉토리가 있는 경우 출력 디렉토리도 생성해야 합니다. 다음은 이전에 생성된 tmp.zip
을 출력 디렉토리에 압축 해제하는 java unzip 파일 프로그램입니다.
package com.journaldev.files;
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 UnzipFiles {
public static void main(String[] args) {
String zipFilePath = "/Users/pankaj/tmp.zip";
String destDir = "/Users/pankaj/output";
unzip(zipFilePath, destDir);
}
private static void unzip(String zipFilePath, String destDir) {
File dir = new File(destDir);
// create output directory if it doesn't exist
if(!dir.exists()) dir.mkdirs();
FileInputStream fis;
//buffer for read and write data to file
byte[] buffer = new byte[1024];
try {
fis = new FileInputStream(zipFilePath);
ZipInputStream zis = new ZipInputStream(fis);
ZipEntry ze = zis.getNextEntry();
while(ze != null){
String fileName = ze.getName();
File newFile = new File(destDir + File.separator + fileName);
System.out.println("Unzipping to "+newFile.getAbsolutePath());
//create directories for sub directories in zip
new File(newFile.getParent()).mkdirs();
FileOutputStream fos = new FileOutputStream(newFile);
int len;
while ((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
//close this ZipEntry
zis.closeEntry();
ze = zis.getNextEntry();
}
//close last ZipEntry
zis.closeEntry();
zis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
프로그램이 완료되면 동일한 디렉터리 계층 구조를 가진 출력 폴더에 모든 zip 파일 내용이 있습니다. 위 프로그램의 출력은 다음과 같습니다.
Unzipping to /Users/pankaj/output/.DS_Store
Unzipping to /Users/pankaj/output/data/data.dat
Unzipping to /Users/pankaj/output/data/data.xml
Unzipping to /Users/pankaj/output/data/xmls/project.xml
Unzipping to /Users/pankaj/output/data/xmls/web.xml
Unzipping to /Users/pankaj/output/data.Xml
Unzipping to /Users/pankaj/output/DB.xml
Unzipping to /Users/pankaj/output/item.XML
Unzipping to /Users/pankaj/output/item.xsd
Unzipping to /Users/pankaj/output/ms/data.txt
Unzipping to /Users/pankaj/output/ms/project.doc
자바 압축 해제 파일 예제에 관한 모든 것입니다.