我有一个巨大的字符串,我需要在某处缓存,因为我无法写入文件,我唯一的选择是将其作为文本存储在数据库中,更具体地说,在我拥有的 clob 中,我将 JSON 文件存储在我的位置m 将压缩字符串放在该 JSON 对象的某个键下。
我正在压缩字符串,但是在字符串操作的某个地方发生了一些事情,不允许我解压缩数据,所以我想知道我是否应该将数据编码为 base 64,但这会失去压缩。
我可以做些什么来确保我可以将压缩字符串存储在数据库中,以便以后可以获取它?
我无法更改数据库,所以我被那个 CLOB 字段卡住了
这些是我的压缩功能:
public static String compress(String text) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
OutputStream out = new DeflaterOutputStream(baos);
out.write(text.getBytes("UTF-8"));
out.close();
} catch (IOException e) {
//ooops
}
return baos.toString();
}
public static String decompress(String bytes) {
InputStream in = new InflaterInputStream(new ByteArrayInputStream(bytes.getBytes()));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
byte[] buffer = new byte[8192];
int len;
while ((len = in.read(buffer)) > 0)
baos.write(buffer, 0, len);
return new String(baos.toByteArray(), "UTF-8");
} catch (IOException e) {
//ooops
}
}