Java: Lớp Deflater
Giải phóng thời gian, khai phóng năng lực
Deflater có nhiệm vụ nén dữ liệu hiện thời vào một luồng nhập. Nó nén dữ liệu sử dụng thư viện nén ZLIB.
Hàm tạo của lớp này được dùng để tạo thể hiện với mức nén mặc định.
Các phương thức
Bảng dưới đây liệt kê và mô tả các phương thức khác nhau của lớp Deflater.
Phương thức | Mô tả |
---|---|
deflate(byte[] buffer) | Điền vào bộ đệm xuất các dữ liệu đã được nén và trả về kích thước thực của dữ liệu đó dưới dạng một số nguyên. |
deflate(byte[] buffer, int offset, int len) | Điền vào bộ đệm xuất các dữ liệu đã được nén và trả về kích thước thực của dữ liệu đó dưới dạng một số nguyên. Ở đây, tham số buffer là bộ đệm được dùng để lưu dữ liệu nén, offset là vị trí bắt đầu của dữ liệu, và len là số byte lớn nhất của dữ liệu nén. |
setInput(byte[] buffer) | Đặt dữ liệu nhập hiện thời vào bộ đệm để nén. |
setInput(byte[] buffer, int offset, int len) | Đặt dữ liệu nhập hiện thời vào bộ đệm để nén. Ở đây, buffer là bộ đệm được dùng để lưu các byte dữ liệu đầu vào, offset là vị trí bắt đầu của dữ liệu, và len là kích thước của dữ liệu. |
finish() | Chỉ ra rằng quá trình nén nên được kết thúc với nội dung hiện thời của bộ đệm nhập. |
end() | Đóng bộ nén và bỏ qua dữ liệu đầu vào không được xử lý. Closes the compressor and discards the unprocessed input. |
Các phương thức của lớp Deflater
Đoạn mã sau cho thấy cách dùng các phương thức trong lớp Deflater.
package solutions; import java.util.zip.Deflater; public class DeflaterApplication { public static void main(String[] args) throws Exception { // Mã hóa một chuỗi thành các byte String input = "The Deflater class compresses the data."; byte[] inputObj = input.getBytes("UTF-8"); // Nén các byte byte[] output = new byte[100]; Deflater deflater = new Deflater(); deflater.setInput(inputObj); deflater.finish(); int compressDataLength = deflater.deflate(output); System.out.println(compressDataLength); } }
Phân tích: Chuỗi đầu vào được khởi tạo và mã hóa thành màng byte. Tiếp theo, nó tạo một đối tượng của lớp Deflater trong đó gọi phương thức setInput() để thiết lập dữ liệu đầu vào cho việc nén. Đối tượng Deflater sau đó gọi phương thức deflate() để nén chuỗi đầu vào. Sau khi nén thì phương thức deflate() trả về số lượng byte của dữ liệu đã nén và được lưu vào một biến nguyên. Sau đó giá trị được hiển thị. Phương thức này giúp lấy kích thước của tập tin đã nén theo dạng byte.
Hình sau hiển thị đầu ra của đoạn mã trên.
Giải phóng thời gian, khai phóng năng lực