[java] 자바 소켓 프로그래밍에서의 데이터 압축과 압축 해제
import java.util.zip.Deflater;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class DataCompressor {
public static byte[] compressData(byte[] input) throws IOException {
Deflater deflater = new Deflater();
deflater.setInput(input);
deflater.finish();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(input.length);
byte[] buffer = new byte[1024];
while (!deflater.finished()) {
int count = deflater.deflate(buffer);
outputStream.write(buffer, 0, count);
}
outputStream.close();
return outputStream.toByteArray();
}
}
위의 코드는 Deflater
클래스를 사용하여 데이터를 압축하는 간단한 메서드를 보여줍니다.
이제, 데이터를 전송하는 쪽에서 압축된 데이터를 받았을 때, 이를 압축 해제해야 합니다. 자바에서는 Inflater
클래스를 사용하여 데이터를 압축 해제할 수 있습니다. 아래는 데이터를 압축 해제하는 예제 코드입니다.
import java.util.zip.Inflater;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class DataDecompressor {
public static byte[] decompressData(byte[] input) throws IOException {
Inflater inflater = new Inflater();
inflater.setInput(input);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(input.length);
byte[] buffer = new byte[1024];
while (!inflater.finished()) {
int count = inflater.inflate(buffer);
outputStream.write(buffer, 0, count);
}
outputStream.close();
return outputStream.toByteArray();
}
}
위의 코드는 Inflater
클래스를 사용하여 데이터를 압축 해제하는 간단한 메서드를 보여줍니다.
이러한 방식으로 자바 소켓 프로그래밍에서 데이터를 압축하고 압축을 해제할 수 있으며, 이를 통해 안전하고 효율적인 데이터 전송이 가능해집니다.
간단한 예제 코드를 참고하여 소게 부분에서 더 나은 코드를 작성하십시오.
자세한 내용은 Java Documentation를 참고하세요.