专栏首页令仔很忙令仔代码收藏系列(一)----Java压缩与解压缩

令仔代码收藏系列(一)----Java压缩与解压缩

package com.flight.inter.otaadapter.manage;

import com.flight.inter.otaadapter.commons.util.Base64Util;
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;


public class MessageZIPManage {

    /**
     * 压缩
     * @param encode
     * @return
     */
    public static String zipEncode(String encode){
        byte[] pureResult;
        try {
            pureResult = encode.getBytes("UTF-8");
            ByteArrayInputStream inputStream =
                    new ByteArrayInputStream(pureResult);
            ByteArrayOutputStream miwenOutput=new ByteArrayOutputStream();
            GZIPOutputStream outStream =
                    new GZIPOutputStream ( miwenOutput);
            byte[] buf = new byte[10000];
            while (true) {
                int size = inputStream.read(buf);
                if (size <= 0)
                    break;
                outStream.write(buf, 0, size);
            }
            outStream.close();
            byte[] miwenbytes=miwenOutput.toByteArray();
            String pursf= Base64Util.encode2Str(miwenbytes);
            return pursf;

        } catch (Exception e) {
            return null;
        }
    }

    /**
     * 解压缩
     * @param decode
     * @return
     */
    public static String zipDecode(String decode){
        byte[] pureResult;
        try {
            pureResult = Base64Util.decode2ByteArray(decode);
            ByteArrayOutputStream outStream =
                    new ByteArrayOutputStream(10 * pureResult.length);
            GZIPInputStream inStream =
                    new GZIPInputStream ( new ByteArrayInputStream(pureResult) );
            byte[] buf = new byte[10000];
            while (true) {
                int size = inStream.read(buf);
                if (size <= 0)
                    break;
                outStream.write(buf, 0, size);
            }
            outStream.close();
            String pursf=new String(outStream.toByteArray());
            return pursf;

        } catch (Exception e) {
            return null;
        }

    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 现在de前端仔真厉害,这些 Linux 知识都懂

    大家好,我是虚竹,偶尔检验一下自己的功夫是否学到家,还得通过不断的吸取精华,才能输出美轮美奂的精彩实用好文。今天先来给大家讲一讲前端如何快速了解 Linux 服...

    玖柒的小窝
  • Linux 操作命令总结

    Linux使用场景:服务器操作系统(比如我正在备案中的阿里云),移动设备(安卓手机,平板),路由器(WIFI),交换机,智能家居,JAVA程序开发。

    AngelNH
  • 常考的 21 条 Linux 命令

    (它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径)

    C语言与CPP编程
  • 常考的 21 条 Linux 命令

    (它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径)

    程序员小浩
  • Java程序员的日常——经验贴(纯干货)

    工作当中遇到的事情比较杂,因此涉及的知识点也很多。这里暂且记录一下,今天遇到的知识点,纯干货~ 关于文件的解压和压缩 如果你的系统不支持tar -z命令 ...

    用户1154259
  • 程序员必备的21个Linux命令

    作为一个后端开发者,Linux常用是必备的,不管是面试还是实际工作中,都是非常有用的。

    田维常
  • BATJ 常考的 21 条 Linux 命令

    (它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径) cd /home 进入 '/ home' 目录 cd .. ...

    挨踢小子部落阁
  • 面试官常考的 21 条 Linux 命令

    它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。

    xcbeyond
  • 常用Linux命令

    它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径:

    花落花相惜
  • BATJ 常考的 21 条 Linux 命令

    (它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径) cd /home 进入 '/ home' 目录 cd .. ...

    lyb-geek
  • Java 虚拟机:Java对象的内存布局

    在 Java 程序中,我们拥有多种新建对象的方式。除了最为常见的 new 语句之外,我们还可以通过反射机制、Object.clone 方法、反序列化以及 Uns...

    码农架构
  • Linux(一)目录

    小徐
  • BATJ面试必会之Linux命令篇(附答案)

    (它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径) cd /home 进入 '/ home' 目录 cd .. ...

    乔戈里
  • Linux上,最常用的一批命令解析(十年精选,超详细)

    只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/不一样

    浩说编程
  • 从CTF比赛真题中学习压缩包伪加密与图片隐写术【文中工具已打包】

    先讲个笑话,刚刚打完MAR DASCTF明御攻防赛,一如往常,很轻松便拿到了两个flag(签到与问卷),哈哈,一个脑细胞都不用消耗

    公众号爱国小白帽
  • 分词工具Hanlp基于感知机的中文分词框架

    结构化感知机标注框架是一套利用感知机做序列标注任务,并且应用到中文分词、词性标注与命名实体识别这三个问题的完整在线学习框架,该框架利用1个算法解决3个问题,时自...

    IT小白龙
  • 03 . Tomcat的常用设置及优化,升级

    当我们公司使用tomcat作为web应用服务器的规模越来越大,为保证Tomcat配置安全,防止信息泄露,恶意攻击以及配置的安全规范,特制定此Tomcat安全配置...

    常见_youmen
  • Linux命令汇总

    描述:jps是jdk提供的一个查看当前java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。非...

    HLee
  • CTF取证方法大汇总,建议收藏!

    站在巨人的肩头才会看见更远的世界,这是一篇来自技术牛人的神总结,运用多年实战经验总结的CTF取证方法,全面细致,通俗易懂,掌握了这个技能定会让你在CTF路上少走...

    用户7886150

扫码关注云+社区

领取腾讯云代金券