Golang gzip的压缩和解压

 1 package src
 2
 3 import (
 4     "bytes"
 5     "compress/gzip"
 6 )
 7
 8 func GzipEncode(in []byte) ([]byte, error) {
 9     var (
10         buffer bytes.Buffer
11         out    []byte
12         err    error
13     )
14     writer := gzip.NewWriter(&buffer)
15     _, err = writer.Write(in)
16     if err != nil {
17         writer.Close()
18         return out, err
19     }
20     err = writer.Close()
21     if err != nil {
22         return out, err
23     }
24
25     return buffer.Bytes(), nil
26 }
27
28 func GzipDecode(in []byte) ([]byte, error) {
29     reader, err := gzip.NewReader(bytes.NewReader(in))
30     if err != nil {
31         var out []byte
32         return out, err
33     }
34     defer reader.Close()
35
36     return ioutil.ReadAll(reader)
37 }
时间: 2024-10-05 13:40:56

Golang gzip的压缩和解压的相关文章

对数据进行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

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 ?正确,可以执行命令

Linux tar(用来压缩和解压文件)

通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案.利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便

.net文件压缩和解压及中文文件夹名称乱码问题

/**************************注释区域内为引用http://www.cnblogs.com/zhaozhan/archive/2012/05/28/2520701.html的博客内容 在.NET可以通过多种方式实现zip的压缩和解压:1.使用System.IO.Packaging:2.使用第三方类库:3.通过 System.IO.Compression 命名空间中新增的ZipArchive.ZipFile等类实现. 一.使用System.IO.Packaging压缩和解压

Linux下tar bz gz等压缩包的压缩和解压

Linux下用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩,本文是对压缩和解压命令的大致总结 .tar.gz  解压:tar zxvf FileName.tar.gz  压缩:tar zcvf FileName.tar.gz dirName solaris下解压 *.tar.gz可能有些不同,按照以下两步实现解压: 1.gzip -d *.tar.gz 2.tar xvf *.tar 第一步,先把*.tar.gz格式解压成*.tar格式 第二步,直接解压*.tar格

java工具类——java将一串数据按照gzip方式压缩和解压缩

我要整理在工作中用到的工具类分享出来,也方便自己以后查阅使用,这些工具类都是我自己实际工作中使用的 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.nio

iOS开发 -文件下载(6压缩和解压)

iOS开发网络篇—文件下载(六·压缩和解压) 一.完成文件下载 需求:完成文件下载 1.在本地服务器中,添加一个图片的压缩文件. 2.代码示例: 文件下载器代码: 头文件 1 // 2 // YYfileDownloader.h 3 // 01-文件的下载(不合理) 4 // 5 // Created by apple on 14-7-1. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import <Founda

ruby利用Zip Gem写一个简单的压缩和解压的小工具

在UNIX下的我们怎么会沦落到用ruby写压缩和解压工具呢?直接上shell啊!但是请允许本猫这次可耻的用ruby来玩玩吧!其实ruby GEM中有很多压缩解压包,我选的是Zip,也许是因为名字符合KISS原则吧!不过在编写中发现Zip中的某些类没有文档中所说明的实例方法,也许在某个平台上还未实现?? 话先说到前头,这个工具如果解压有重名文件的情况会直接覆盖原文件而不会有任何提示!测试时务必注意,如果造成一些文件丢失可别怪本猫啊! 代码也考虑到多文件的情况,如果是压缩多文件则默认会单独压缩每一个

linux压缩和解压,socket编程

1.使用zip和unzip压缩和解压 Zip aa.zip  文件名(一个) Zip aa.zip 文件名1 文件名2(压缩多个文件) Zip -r aa.zip  文件夹路径(压缩整个文件夹) zip -t 102002 file.zip 压缩当前目录下在2002 10月20日之后的文件压缩 zip file.zip * -x file2.txt 压缩时,将当前目录内的file2.txt文件排除在外 2.解压 unzip aa.zip unzip file.zip x file2 :除了fil