在go语言中Gunzip文件(gz文件)解压示例

2023-06-01 00:00:00 示例 文件 解压

如何在 Golang 中轻松地解压缩一个gz文件

示例代码:

 package main
 
 import (
         "compress/gzip"
         "flag"
         "fmt"
         "io"
         "os"
         "strings"
 )
 
 func main() {
         flag.Parse() //从命令行获取参数
         filename := flag.Arg(0)
         
         if filename == "" {
                 fmt.Println("Usage : gunzip sourcefile.gz")
                 os.Exit(1)
         }
         gzipfile, err := os.Open(filename)
         if err != nil {
                 fmt.Println(err)
                 os.Exit(1)
         }
         reader, err := gzip.NewReader(gzipfile)
         if err != nil {
                 fmt.Println(err)
                 os.Exit(1)
         }
         defer reader.Close()
         newfilename := strings.TrimSuffix(filename, ".gz")
         writer, err := os.Create(newfilename)
         if err != nil {
                 fmt.Println(err)
                 os.Exit(1)
         }
         defer writer.Close()
         if _, err = io.Copy(writer, reader); err != nil {
                 fmt.Println(err)
                 os.Exit(1)
         }
 }

输出:

./gunzip
用法 : gunzip sourcefile.gz

ps:

这个程序在成功解压 gzipped 文件时不会产生任何信息。

相关文章