PHP gzcompressを達成するためのJava関数

視覚的なBASE64を追加するには 

PHPコード:

<?PHP
 $ A = gzcompress( "ABC" );
エコー BASE64_ENCODE$ )。
//出力:eJxLTEoGAAJNASc =
デコード:gzuncompressを();

zlibのdeflateエンコーディングを使用して、ソースヒントデフォルト;

関数 gzcompress$データ$レベル = -1、$エンコーディング = ZLIB_ENCODING_DEFLATE){}

 

JAVA(JDK1.8)に対応する処理コード:

輸入java.io.ByteArrayOutputStreamを;
インポートにjava.io.IOException;
輸入java.util.Arrays。
輸入java.util.Base64;
輸入java.util.zip.Deflaterの;
輸入java.util.zip.Inflater; 

パブリック クラスGzCompress {
     公共 静的 ボイドメイン(文字列[]引数){ 

        文字列encodeCompressd   = "eJxLTEoGAAJNASc =" バイト [] = compressd 。Base64.getDecoder()デコード(encodeCompressd)。
        文字列の起源   = 新しい文字列(解凍(compressd)); 
        System.out.printlnは(「起源:」+ 起源)。
        バイト [] _compressd = 圧縮(origin.getBytes())。
        バイト [] _encodeCompress = Base64.getEncoder()エンコード(_compressd)。
        System.out.println(新しい文字列(_encodeCompress)); 
    } 

    パブリック 静的 バイト []解凍(バイト[]データ){ 

        バイト []出力= 新しい バイト [0 ]。

        インフレータdecompresser = 新しいインフレータ(); 
        decompresser.reset(); 
        decompresser.setInput(データ)。

        ByteArrayOutputStream O =新しいByteArrayOutputStream(data.length);
        試す{
             バイト [] BUF = 新しい バイト [1024 ];
            しばらく(!decompresser.finished()){
                 int型 I = decompresser.inflate(BUF)。
                o.write(BUF、 0 、I)。
            } 
            出力 = o.toByteArray()。
        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 最後に{
             しようと{  
                )(o.close。
            } キャッチ(IOExceptionを電子){ 
                e.printStackTrace(); 
            } 
        } 
        )(decompresser.end。
        戻り値の出力; 
    } 

    パブリック 静的 バイト []圧縮(バイト[]バイト){ 

        バイト []出力= 新しい バイト [1024 ]; 
        デフレータcompresser = 新しいデフレータ(); 
        compresser.setInput(バイト)。
        compresser.finish(); 
        INT compressedDataLength = compresser.deflate(出力)。
        リターンArrays.copyOf(出力、compressedDataLength)。
    }
}

対応する出力:

原産地:ABCの
compressLength:11
eJxLTEoGAAJNASc =

おすすめ

転載: www.cnblogs.com/glory-jzx/p/12127929.html