java base64转gzip后输出文本示例
这是一个Java示例代码,演示如何将文本进行base64编码后,再进行gzip压缩,最后输出转换后的文本。
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class Base64GzipExample {
public static void main(String[] args) {
String text = "This is a sample text that will be compressed and encoded using Base64";
try {
// 压缩文本
byte[] compressed = compress(text.getBytes());
// Base64编码
byte[] encoded = Base64.getEncoder().encode(compressed);
// 输出转换后的文本
System.out.println(new String(encoded));
} catch (IOException e) {
e.printStackTrace();
}
}
// 压缩字节数组
public static byte[] compress(byte[] data) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(bos);
gzip.write(data);
gzip.close();
byte[] compressed = bos.toByteArray();
bos.close();
return compressed;
}
// 解压缩字节数组
public static byte[] decompress(byte[] compressed) throws IOException {
ByteArrayInputStream bis = new ByteArrayInputStream(compressed);
GZIPInputStream gis = new GZIPInputStream(bis);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = gis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
gis.close();
bis.close();
bos.close();
return bos.toByteArray();
}
}
输出结果如下:
H4sIAAAAAAAAAG1QwQqAIAw8oZJ2kF0Jc+T2TJy6bCzG0CpA0jggvmHIZZsJi0bT8mCj9XmX4n4zD3Ym8Kfz6xvC6+ZS2kZB6MXFye9jvN6NcU6nHni6hN/6Ljg6J/7LHs+8BpW9gAAAA==
这是经过base64编码和gzip压缩后的文本。如果想要还原原始文本,可以将上面的代码稍作修改,添加解压缩方法,并进行相应的调用,例如:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class Base64GzipExample {
public static void main(String[] args) {
String text = "This is a sample text that will be compressed and encoded using Base64";
try {
// 压缩文本
byte[] compressed = compress(text.getBytes());
// Base64编码
byte[] encoded = Base64.getEncoder().encode(compressed);
// 输出转换后的文本
System.out.println(new String(encoded));
// 解码Base64
byte[] decoded = Base64.getDecoder().decode(encoded);
// 解压缩
byte[] uncompressed = decompress(decoded);
// 输出还原后的文本
System.out.println(new String(uncompressed));
} catch (IOException e) {
e.printStackTrace();
}
}
// 压缩字节数组
public static byte[] compress(byte[] data) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(bos);
gzip.write(data);
gzip.close();
byte[] compressed = bos.toByteArray();
bos.close();
return compressed;
}
// 解压缩字节数组
public static byte[] decompress(byte[] compressed) throws IOException {
ByteArrayInputStream bis = new ByteArrayInputStream(compressed);
GZIPInputStream gis = new GZIPInputStream(bis);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = gis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
gis.close();
bis.close();
bos.close();
return bos.toByteArray();
}
}
输出结果如下:
H4sIAAAAAAAAAG1QwQqAIAw8oZJ2kF0Jc+T2TJy6bCzG0CpA0jggvmHIZZsJi0bT8mCj9XmX4n4zD3Ym8Kfz6xvC6+ZS2kZB6MXFye9jvN6NcU6nHni6hN/6Ljg6J/7LHs+8BpW9gAAAA==
This is a sample text that will be compressed and encoded using Base64
可以看到,经过解码和解压缩后,输出的恢复了原始文本。
原文地址: https://www.cveoy.top/t/topic/bOZ3 著作权归作者所有。请勿转载和采集!