如何将字符串转换为GZIP Base64字符串?

lia*_*dee 10 java string base64 gzip

我一直试图弄清楚使用GZIPOutputStream之类的东西,但是在理解它们方面没有成功.我想做的就是将一串字符 - "一串字符"转换为GZIP Base64格式.我怎样才能做到这一点?

编辑: 通过GZIP Base64格式,我的意思是首先使用GZIP压缩字符串,然后转换为Base64

Dan*_*ruz 23

使用Apache Commons Codec Base64OutputStream.

这是一个示例类:

import java.util.zip.GZIPOutputStream;
import org.apache.commons.codec.binary.Base64OutputStream;

public class Test {
    public static void main(String[] args) {
        String text = "a string of characters";
        try {
            Base64OutputStream b64os = new Base64OutputStream(System.out);
            GZIPOutputStream gzip = new GZIPOutputStream(b64os);
            gzip.write(text.getBytes("UTF-8"));
            gzip.close();
            b64os.close();
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个输出:

H4sIAAAAAAAAAEtUKC4pysxLV8hPU0jOSCxKTC5JLSoGAOP+cfkWAAAA
Run Code Online (Sandbox Code Playgroud)

在Linux下,您可以确认这适用于:

echo 'H4sIAAAAAAAAAEtUKC4pysxLV8hPU0jOSCxKTC5JLSoGAOP+cfkWAAAA' | base64 -d | gunzip
Run Code Online (Sandbox Code Playgroud)

(请注意,在OSX上,您应该使用base64 -D而不是base64 -d在上面的命令中)

哪个输出:

a string of characters
Run Code Online (Sandbox Code Playgroud)