Gzip解压缩代码实现

Gzip解压缩代码实现

1.运行虚拟机
2.在Idea的Maven中打包代码
3.将打包文件拖入虚拟机中
4.执行jar包

在Idea的Maven中打包代码:

将xml文件压缩成gzip文件:

/**
 * @Time : 2021/10/23 15:24
 * @Auther : Carapace
 * @File : DeflateCodeDemo.java
 * Software: IntelliJ IDEA
 */

package com.GzipCodeDemo;


import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionOutputStream;
import org.apache.hadoop.util.ReflectionUtils;

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class GzipCodeDemo {
    public static void main(String[] args) throws Exception {
        String inpath="/home/atguigu/comments.xml";    //自行选择原文件路径

        String outpath="/home/atguigu/comments.gzip";	//自行选择压缩出来文件路径

        Configuration conf = new Configuration();

        //压缩类型
        String codecClassname ="org.apache.hadoop.io.compress.GzipCodec";

        Class<?> codecClass = Class.forName(codecClassname);

        //创建压缩类型的实例的第一种写法
        CompressionCodec codec = (CompressionCodec) ReflectionUtils.newInstance(codecClass,conf);

        //依据outoath输出路径进行和输出流包装,产生新的压缩流
        FileOutputStream fos = new FileOutputStream(outpath);

        //创建输出压缩类
        CompressionOutputStream comOut = codec.createOutputStream(fos);

        //依据压缩路径inpath并写入流
        IOUtils.copyBytes(new FileInputStream(inpath),comOut,1024,false);
        comOut.finish();





    }
}

解压gzip文件解压成xml文件:

/**
 * @Time : 2021/10/23 18:20
 * @Auther : Carapace
 * @File : DeflateCodeDemo2.java
 * Software: IntelliJ IDEA
 */

package com.GzipCodeDemo;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.compress.CompressionInputStream;
import org.apache.hadoop.io.compress.GzipCodec;
import org.apache.hadoop.util.ReflectionUtils;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class GzipCodeDemo2 {
    public static void main(String[] args) throws IOException {


        String inputpath = "/home/atguigu/comments.gzip";	//自行选择原文件路径

        String outputpath = "/home/atguigu/gzip_comments.xml";	//自行选择解压出来文件路径

        Configuration conf = new Configuration();

        //直接实例化codec对象
        GzipCodec codec = new GzipCodec();

        //检查并设置conf对象
        ReflectionUtils.setConf(codec, conf);

        //创建压缩流
        CompressionInputStream comIn = codec.createInputStream(new FileInputStream(inputpath));

        //写入流
        IOUtils.copyBytes(comIn, new FileOutputStream(outputpath), 1024);
        comIn.close();
    }
}

然后在Idea中进行打包,在Maven中先进行clean,然后package
在这里插入图片描述
在target中生成文件,找到文件位置,加载到虚拟机中
在这里插入图片描述

在虚拟机中 运行 代码:

hadoop jar + 包名 +  copy Reference(包名类名)

注:包名如果觉得长,可以自行更改
包名类名获取方式:
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bEstow--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值