public void init(FileChannel channel) {
        if (open) {
            throw new IllegalStateException("Can only initialize after closed");
        }
        this.channel = channel;
        writeHeader();
        open = true;
    }
This class has a better performance than {@link GZIPOutputStream} because the class: 1. uses
(direct) ByteBuffer instead of byte[] 2. caches and reuse data 3. no synchronized on our own
methods

@author James Chen
@see java.util.zip.DeflaterOutputStream
@see java.util.zip.GZIPOutputStream
turms-server-common/src/main/java/im/turms/server/common/infra/logging/core/compression/FastGzipOutputStream.java