Я использую GZIPOutputStream
или ZIPOutputStream
для сжатия строки (my string.length()
меньше 20), но сжатый результат длиннее исходной строки.
На каком-то сайте я обнаружил, что некоторые друзья говорили, что это потому, что моя исходная строка слишком короткая, GZIPOutputStream
может использоваться для сжатия более длинных строк.
Итак, кто-нибудь может мне помочь сжать строку?
Моя функция похожа на:
String compress(String original) throws Exception {
}
Обновление:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;
import java.util.zip.*;
//ZipUtil
public class ZipUtil {
public static String compress(String str) {
if (str == null || str.length() == 0) {
return str;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes());
gzip.close();
return out.toString("ISO-8859-1");
}
public static void main(String[] args) throws IOException {
String string = "admin";
System.out.println("after compress:");
System.out.println(ZipUtil.compress(string));
}
}
Результат: