在Java中實現zlib壓縮數據的寫入可以使用DeflaterOutputStream
類。以下是一個示例代碼:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.Deflater;
import java.util.zip.DeflaterOutputStream;
public class Main {
public static void main(String[] args) {
String input = "Hello, world!";
byte[] inputBytes = input.getBytes();
// 創建一個Deflater對象
Deflater deflater = new Deflater();
// 創建一個ByteArrayOutputStream用于存儲壓縮后的數據
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// 創建一個DeflaterOutputStream,將其與ByteArrayOuputStream關聯
DeflaterOutputStream deflaterOutputStream = new DeflaterOutputStream(outputStream, deflater);
try {
// 寫入數據并關閉流
deflaterOutputStream.write(inputBytes);
deflaterOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 獲取壓縮后的數據
byte[] compressedBytes = outputStream.toByteArray();
// 打印壓縮后的數據
System.out.println("Compressed data: " + new String(compressedBytes));
}
}
在上面的示例中,我們首先創建一個Deflater
對象和一個ByteArrayOutputStream
對象,然后創建一個DeflaterOutputStream
對象,將其與ByteArrayOutputStream
關聯。接著我們將要壓縮的數據寫入DeflaterOutputStream
,最后關閉流并獲取壓縮后的數據。
需要注意的是,DeflaterOutputStream
會自動處理數據的壓縮,無需手動調用壓縮方法。