Java: Lớp Inflater
Giải phóng thời gian, khai phóng năng lực
Lớp Inflater dùng để giải nén dữ liệu đã nén. Nó hỗ trợ việc giải nén sử dụng thư viện ZLIB.
Bảng sau liệt kê các phương thức và mô tả tương ứng của lớp Inflater.
Phương thức | Mô tả |
---|---|
inflate(byte[] buffer) | Điền vào bộ đệm xuất dữ liệu đã giải nén và trả về một số nguyên là kích thước thực của nó. |
inflate(byte[] buffer, int offset, int len) | Điền vào bộ đệm xuất dữ liệu đã giải nén và trả về một số nguyên là kích thước thực của nó. Ở đây, buffer là bộ đệm dùng để lưu dữ liệu đã giải nén, offset là vị trí bắt đầu của dữ liệu, len là số byte lớn nhất của dữ liệu đã giải nén. |
setInput(byte[] buffer) | Đặt dữ liệu nhập hiện thời vào bộ đệm để giải nén. |
setInput(byte[] buffer, int offset, int len) | Đặt dữ liệu nhập hiện thời vào bộ đệm để giải nén. Ở đây, buffer là bộ đệm dùng để lưu các byte dữ liệu đã nén, offset là vị trí bắt đầu của dữ liệu, len là độ dài của dữ liệu đã nén. |
end() | Đóng bộ giải nén. |
Các phương thức của lớp Inflater
Đoạn mã 3 cho thấy cách dùng các phương thức của lớp Inflater.
Đoạn mã 3:
package solutions; import java.util.zip.Deflater; import java.util.zip.Inflater; public class InflaterApplication { public static void main(String[] args) throws Exception { // Mã hóa một chuỗi thành các byte String input = "Lớp Inflater giải nén dữ liệu."; byte[] inputObj = input.getBytes("UTF-8"); // Nén các byte byte[] output = new byte[100]; Deflater deflaterObj = new Deflater(); deflaterObj.setInput(inputObj); deflaterObj.finish(); int compressDataLength = deflaterObj.deflate(output); System.out.println(compressDataLength); // Giải nén các byte Inflater inflaterObj = new Inflater(); inflaterObj.setInput(output, 0, output.length); byte[] resultObj = new byte[100]; int resultLength = inflaterObj.inflate(resultObj); inflaterObj.end(); // Giải mã các byte thành một chuỗi String strOutput = new String(resultObj, 0, resultLength, "UTF-8"); System.out.println("Recovered string is: " + strOutput); } }
Trong đoạn mã trên, dữ liệu đầu vào để giải nén được thiết lập sử dụng đối tượng Inflater. Tiếp theo, đối tượng Inflater gọi phương thức inflate() để giải nén dữ liệu đã nén. Sau khi giải nén thì kết quả được lưu trữ vào mảng byte là result. Cuối cùng, result được lưu vào đối tượng chuỗi.
Kết quả sau đây thể hiện đầu ra cho đoạn mã trên.
48
Recovered string is: Lớp Inflater giải nén dữ liệu.
Giải phóng thời gian, khai phóng năng lực