[java] GZIP 압축 방법을 사용하여 자바 파일 입출력 데이터 압축하기
GZIP 압축 방법
GZIP은 데이터를 압축하기 위한 표준 파일 형식입니다. 자바에서는 GZIP 압축을 지원하는 GZIPOutputStream
및 GZIPInputStream
클래스를 제공하여 간단하게 데이터를 압축하고 압축 해제할 수 있습니다.
자바에서 파일 압축하기
다음은 파일을 GZIP 압축하는 예제 코드입니다.
import java.io.*;
import java.util.zip.GZIPOutputStream;
public class FileCompressionExample {
public static void compressFile(String inputFileName, String outputFileName) throws IOException {
try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(inputFileName));
GZIPOutputStream out = new GZIPOutputStream(new FileOutputStream(outputFileName))) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
}
}
public static void main(String[] args) {
String inputFile = "input.txt";
String compressedFile = "compressed.gz";
try {
compressFile(inputFile, compressedFile);
System.out.println("File compressed successfully.");
} catch (IOException e) {
System.out.println("Error compressing file: " + e.getMessage());
}
}
}
이 예제에서는 GZIPOutputStream
을 사용하여 input.txt
파일을 compressed.gz
파일로 압축합니다.
자바에서 압축 해제하기
또한, GZIP으로 압축된 파일을 해제하는 방법은 다음과 같습니다.
import java.io.*;
import java.util.zip.GZIPInputStream;
public class FileDecompressionExample {
public static void decompressFile(String inputFileName, String outputFileName) throws IOException {
try (GZIPInputStream in = new GZIPInputStream(new FileInputStream(inputFileName));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outputFileName))) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
}
}
public static void main(String[] args) {
String compressedFile = "compressed.gz";
String outputFile = "output.txt";
try {
decompressFile(compressedFile, outputFile);
System.out.println("File decompressed successfully.");
} catch (IOException e) {
System.out.println("Error decompressing file: " + e.getMessage());
}
}
}
이를 통해 GZIP으로 압축된 파일을 output.txt
로 해제할 수 있습니다.
GZIP을 사용하여 자바에서 파일 입출력 데이터를 압축하는 방법에 대해 알아보았습니다. 이를 통해 데이터를 효율적으로 저장하고 전송할 수 있습니다.
참고 문헌: