[java] GZIP 압축 방법을 사용하여 자바 데이터 압축 알고리즘 구현하기
GZIP 압축 알고리즘
GZIP은 파일 또는 데이터 스트림을 압축하기 위해 사용되는 파일 형식 및 소프트웨어 애플리케이션의 이름입니다. 자바에서는 java.util.zip
패키지를 사용하여 GZIP 파일 형식을 지원하며, 데이터를 압축하고 해제하는 데 사용할 수 있습니다.
GZIP으로 데이터를 압축하려면 아래와 같은 스텝을 따릅니다.
import java.io.*;
import java.util.zip.GZIPOutputStream;
public class GZIPExample {
public static void compressFile(String sourceFile, String targetFile) throws IOException {
try (FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(targetFile);
GZIPOutputStream gzipOS = new GZIPOutputStream(fos)) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
gzipOS.write(buffer, 0, len);
}
}
}
public static void main(String[] args) {
try {
compressFile("input.txt", "output.gz");
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 예제에서 compressFile
메서드는 입력 파일을 GZIP 형식으로 압축하여 출력 파일에 작성합니다.
GZIP 압축 해제 알고리즘
데이터를 GZIP 형식에서 해제하려면 아래와 같은 스텝을 따릅니다.
import java.io.*;
import java.util.zip.GZIPInputStream;
public class GZIPExample {
public static void decompressFile(String sourceFile, String targetFile) throws IOException {
try (FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(targetFile);
GZIPInputStream gzipIS = new GZIPInputStream(fis)) {
byte[] buffer = new byte[1024];
int len;
while ((len = gzipIS.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
}
}
public static void main(String[] args) {
try {
decompressFile("input.gz", "output.txt");
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 예제에서 decompressFile
메서드는 GZIP 형식의 입력 파일을 해제하여 출력 파일에 작성합니다.
이제 GZIP 압축 알고리즘을 사용하여 자바에서 데이터를 압축하고 해제하는 방법에 대해 배웠습니다. GZIP 관련 더 자세한 정보는 Oracle Java Documentation에서 확인할 수 있습니다.