Java: Lớp Deflater

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
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 mt chui 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.

java-nio-deflater-output

» Tiếp: Lớp Inflater
« Trước: Gói java.util.zip
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!