[java] GZIP 압축 방법을 사용하여 네트워크 전송을 압축하는 방법
데이터를 네트워크를 통해 전송할 때, 압축을 사용하여 대역폭을 절약하고 전송 시간을 단축할 수 있습니다. GZIP 알고리즘은 널리 사용되며, Java에서는 GZIPOutputStream 및 GZIPInputStream 클래스를 사용하여 데이터를 압축 및 제거할 수 있습니다.
아래는 GZIP를 사용하여 데이터를 압축한 후 전송하는 Java 코드입니다.
import java.io.*;
import java.util.zip.GZIPOutputStream;
public class FileCompressor {
public static void compressFile(String inputFileName, String outputFileName) throws IOException {
FileInputStream inputStream = new FileInputStream(inputFileName);
FileOutputStream outputStream = new FileOutputStream(outputFileName);
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream);
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) > 0) {
gzipOutputStream.write(buffer, 0, len);
}
inputStream.close();
gzipOutputStream.finish();
gzipOutputStream.close();
}
}
위의 코드에서는 FileCompressor 클래스의 compressFile 메서드를 사용하여 입력 파일을 GZIP 압축하여 출력 파일에 쓰고 있습니다.
이런 방식으로 전송하는 쪽에서는 데이터를 GZIP으로 압축하여 전송하고, 수신하는 쪽에서는 GZIPInputStream 클래스를 사용하여 압축을 해제할 수 있습니다.