Java Gzip类 - base64压缩和解压

public final class ZipUtil
{
    public static String CompressToBase64(String string){
        try {
            ByteArrayOutputStream os = new ByteArrayOutputStream(string.length());
            GZIPOutputStream gos = new GZIPOutputStream(os);
            gos.write(string.getBytes());
            gos.close();
            byte[] compressed = os.toByteArray();
            os.close();

            String result = Base64.encodeToString(compressed, Base64.DEFAULT);
            return result;
        } catch (IOException e) {
            e.printStackTrace();

        }
        catch (Exception ex){

        }
        return "";
    }

    public static String DecompressToBase64(String textToDecode){
        //String textToDecode = "H4sIAAAAAAAAAPNIzcnJBwCCidH3BQAAAA==\n";
        try {
            byte[] compressed = Base64.decode(textToDecode, Base64.DEFAULT);
            final int BUFFER_SIZE = 32;
            ByteArrayInputStream inputStream = new ByteArrayInputStream(compressed);

            GZIPInputStream gis  = new GZIPInputStream(inputStream, BUFFER_SIZE);

            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] data = new byte[BUFFER_SIZE];
            int bytesRead;
            while ((bytesRead = gis.read(data)) != -1) {
                baos.write(data, 0, bytesRead);
            }

            return baos.toString("UTF-8");
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        catch (Exception ex){

        }
        return "";
    }
}

时间: 2024-10-27 12:59:44

Java Gzip类 - base64压缩和解压的相关文章

Linux命令(28):gzip/gunzip命令-压缩和解压

gzip/gunzip命令 功能说明 对文件进行压缩(gzip)或解压(gunzip),压缩文件预设的扩展名为".gz",gunzip就是gzip的硬链接,解压可以通过gzip -d命令实现.用法如下:   gzip [选项] 压缩 (解压缩) 的文档名 常用参数 选项 说明 -d 对压缩的文件进行解压(相当于gunzip的解压功能) -c 将结果输出的标准输出(相当于保留源文件) -r 递归式压缩指定目录以及子目录下的所有文件 -t 检查压缩文件完整性 -v 对于每个压缩和解压缩的文

C# GZip对字符串压缩和解压

/// <summary> /// 压缩方法 /// </summary> public static string CompressString(string str) { string compressString = ""; byte[] compressBeforeByte = Encoding.GetEncoding("UTF-8").GetBytes(str); byte[] compressAfterByte = Compres

Linux下的压缩和解压

1. gzip, bzip2 能否直接压缩目录呢? 不可以 2. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令.压缩:gzip 1.txt bzip2 1.txt解压:gzip -d 1.txt.gz bzip2 -d 1.txt.bz2 3. tar 在打包的时候,如果想排除多个文件或者目录如何操作?--exclude filename 4. 请实验,如果不加 "-" 是否正确, 如 tar zcvf  1.tar.gz  1.txt 2.txt ?正确,可以执行命令

【转】Java压缩和解压文件工具类ZipUtil

特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/ 1 package com.utility.zip; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.File; 6 import jav

java 压缩和解压zip包

网上有关压缩和解压zip包的博文一大堆,我随便找了一个,看了看,按照自己的需要修改了一下,与各位分享一下,希望各位大神指正: package com.wangpeng.utill; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import

java zip压缩和解压(支持中文)

package com.xeon.mis.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Enumeration; impor

对数据进行GZIP压缩和解压

public class GzipUtils { /** * 对字符串进行gzip压缩 * @param data * @return * @throws IOException */ public static String compress(String data) throws IOException { if (null == data || data.length() <= 0) { return data; } //创建一个新的byte数组输出流 ByteArrayOutputStr

【C#公共帮助类】WinRarHelper帮助类,实现文件或文件夹压缩和解压,实战干货

关于本文档的说明 本文档使用WinRAR方式来进行简单的压缩和解压动作,纯干货,实际项目这种压缩方式用的少一点,一般我会使用第三方的压缩dll来实现,就如同我上一个压缩类博客,压缩的是zip文件http://www.cnblogs.com/wohexiaocai/p/5469253.html,实际项目中也会用到rar压缩,所以总结了一下代码,之后简单的几个函数. 欢迎传播分享,必须保持原作者的信息,但禁止将该文档直接用于商业盈利. 本人自从几年前走上编程之路,一直致力于收集和总结出好用的框架和通

c#自带类实现的多文件压缩和解压

c#自带的System.IO.Compression命名空间下的压缩类实现的多文件压缩和解压功能,缺点是多文件压缩包的解压只能调用自身的解压方法,和现有的压缩软件不兼容.下面的代码没有把多文件的目录结构加进去 using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; namespace Test.Zip { class CompressHelper { /// <su