¿Cómo comprimir una cadena en Java?
yo sueloGZIPOutputStream
oZIPOutputStream
comprimir una cadena (mistring.length()
es inferior a 20), pero el resultado comprimido es más largo que la cadena original.
En algún sitio, encontré que algunos amigos dijeron que esto se debe a que mi cadena original es demasiado corta,GZIPOutputStream
se puede usar para comprimir cadenas más largas.
Entonces, ¿alguien puede ayudarme a comprimir una cadena?
Mi función es como:
String compress(String original) throws Exception {
}
Actualizar:
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));
}
}
El resultado es :