Как сжать строку в Java?

Я использую GZIPOutputStream или ZIPOutputStream для сжатия строки (мой 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));
    }
}

Результат:

alt text

51
задан Electric Coffee 28 November 2015 в 02:05
поделиться