インポートjava.io.ByteArrayInputStream;
インポートjava.io.ByteArrayOutputStream;
インポートjava.io.IOException;
インポートjava.util.zip.GZIPInputStream;
インポートjava.util.zip.GZIPOutputStream;
public class GZIPUtils { public static final String GZIP_ENCODE_UTF_8 = "UTF-8"; public static final String GZIP_ENCODE_ISO_8859_1 = "ISO-8859-1";
public static byte [] compress(String str、String encoding){ if(str == null || str.length()== 0){ return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPOutputStream gzip; { gzip = new GZIPOutputStream(out);を試してください 。 gzip.write(str.getBytes(encoding)); gzip.close(); } catch(Exception e){ e.printStackTrace(); } return out.toByteArray(); } public static byte [] compress(String str)throws IOException { return compress(str、GZIP_ENCODE_UTF_8);
}
public static byte [] uncompress(byte [] bytes){ if(bytes == null || bytes.length == 0){ return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayInputStream in = new ByteArrayInputStream(bytes); { GZIPInputStream ungzip = new GZIPInputStream(in);を試してください 。 バイト[]バッファ=新しいバイト[256]; int n; while((n = ungzip.read(buffer))> = 0){ out.write(buffer、0、n); } } catch(Exception e){ e.printStackTrace(); }
out.toByteArray();を返します。
}
public static String uncompressToString(byte [] bytes、String encoding){
if(bytes == null || bytes.length == 0){
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
{ GZIPInputStream ungzip = new GZIPInputStream(in);を試してください 。 バイト[]バッファ=新しいバイト[256]; int n; while((n = ungzip.read(buffer))> = 0){ out.write(buffer、0、n); } return out.toString(encoding);
} catch(Exception e){ e.printStackTrace(); } nullを返します。 } public static String uncompressToString(byte [] bytes){ return uncompressToString(bytes、GZIP_ENCODE_UTF_8); } public static void main(String [] args)throws IOException { String s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; System.out.println( "字文字列長度:" + s.length()); System.out.println( "圧缩后::" + compress(s).length); System.out.println( "解圧后:" + uncompress(compress(s))。length); System.out.println( "解圧文字列串后::" + uncompressToString(compress(s))。length());