亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用go讀取gzip格式的壓縮包的操作

 更新時間:2020年12月22日 15:56:15   作者:robertkun  
這篇文章主要介紹了使用go讀取gzip格式的壓縮包的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

package main
// 引入所需包
import (
  "os"
  "compress/gzip"
  "io/ioutil"
  "fmt"
)
// gzip文件
var fn = "./113.200.251.66_1510825558_A6D39783B05943D8ACA64F397748CF1B_vdn.gz"
func main() {
  println(fn)
  // 打開本地gz格式壓縮包
  fr, err := os.Open(fn)
  if err != nil {
    panic(err)
  } else {
    println("open file success!")
  }
  // defer: 在函數(shù)退出時,執(zhí)行關(guān)閉文件
  defer fr.Close()
  // 創(chuàng)建gzip文件讀取對象
  gr, err := gzip.NewReader(fr)
  if err != nil {
      panic(err)
    }
  // defer: 在函數(shù)退出時,執(zhí)行關(guān)閉gzip對象
  defer gr.Close()
  // 讀取gzip對象內(nèi)容
  rBuf, err := ioutil.ReadAll(gr)
  if err != nil {
    fmt.Println("[read gzip data err]: ", err)
  }
  // 以文本形式輸出
  fmt.Printf("%s\n", rBuf)
}

輸出: ABCDEFG

補充:golang通過在線讀取請求url返回的zip內(nèi)部內(nèi)容

訪問url返回的zip包,怎么直接解析zip中的文件并獲取文件中的信息呢?

以前都是用java語言做這些事情,今天閑來蛋疼,用golang也實現(xiàn)了一下,效果已經(jīng)發(fā)布在我的公眾號:j全家桶---激活碼中。

引用了以下包:

"archive/zip"
"bufio"
"bytes"
"fmt"
"io"
"io/ioutil"
"net/http"
"os"

1、通過http包內(nèi)部方法,請求了需要訪問的url,這次只是為了分享在線解析zip,所以地址就不寫出來了。

2、讀取字節(jié)流并新建一個讀卡器指定讀取大小,最好弄個延遲關(guān)閉流不然內(nèi)存泄露那是必須的。

3、接下來就是獲取zip中的信息,只需要遍歷一下讀取到的文件把數(shù)據(jù)取出來就行了

其實還是蠻簡單的,只是golang語言用得少,對于流的操作也比較少所以寫一個今天實現(xiàn)這個功能的總結(jié),點滴積累厚積薄發(fā)!

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Go?語言中切片的三種特殊狀態(tài)

    Go?語言中切片的三種特殊狀態(tài)

    我們今天要來講一個非常細(xì)節(jié)的小知識,這個知識被大多數(shù)?Go?語言的開發(fā)者無視了,它就是切片的三種特殊狀態(tài)?——?「零切片」、「空切片」和「nil?切片」,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • go獲取協(xié)程(goroutine)號的實例

    go獲取協(xié)程(goroutine)號的實例

    這篇文章主要介紹了go獲取協(xié)程(goroutine)號的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go語言變量的聲明實現(xiàn)示例

    Go語言變量的聲明實現(xiàn)示例

    本文主要介紹了Go語言變量的聲明實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • GO語言實現(xiàn)簡單TCP服務(wù)的方法

    GO語言實現(xiàn)簡單TCP服務(wù)的方法

    這篇文章主要介紹了GO語言實現(xiàn)簡單TCP服務(wù)的方法,實例分析了Go語言實現(xiàn)TCP服務(wù)的技巧,需要的朋友可以參考下
    2015-03-03
  • golang簡單tls協(xié)議用法完整示例

    golang簡單tls協(xié)議用法完整示例

    這篇文章主要介紹了golang簡單tls用法,分析了tls協(xié)議的使用步驟及客戶端與服務(wù)器端的相關(guān)實現(xiàn)代碼,需要的朋友可以參考下
    2016-07-07
  • golang內(nèi)存逃逸的學(xué)習(xí)筆記

    golang內(nèi)存逃逸的學(xué)習(xí)筆記

    內(nèi)存逃逸是 Go 語言編程中一個特別需要注意的問題,會影響到程序的性能和穩(wěn)定性,本文主要介紹了golang內(nèi)存逃逸的學(xué)習(xí)筆記,感興趣的可以了解一下
    2024-05-05
  • GoLang channel使用介紹

    GoLang channel使用介紹

    Channel 和 goroutine 的結(jié)合是 Go 并發(fā)編程的大殺器。而 Channel 的實際應(yīng)用也經(jīng)常讓人眼前一亮,通過與 select,cancel,timer 等結(jié)合,它能實現(xiàn)各種各樣的功能。接下來,我們就要梳理一下 channel 的應(yīng)用
    2022-10-10
  • 深入了解Golang包的獲取方法

    深入了解Golang包的獲取方法

    Go語言有一個獲取遠(yuǎn)程包的工具就是go get,本文將詳細(xì)為大家介紹一下Go語言包的獲取的方法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • Golang高效解析和生成XML的示例詳解

    Golang高效解析和生成XML的示例詳解

    這篇文章將從Golang中處理XML的基本概念開始,詳細(xì)介紹如何讀取和解析XML文件,然后轉(zhuǎn)向如何創(chuàng)建和輸出XML數(shù)據(jù),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • 淺談Go語言中的結(jié)構(gòu)體struct & 接口Interface & 反射

    淺談Go語言中的結(jié)構(gòu)體struct & 接口Interface & 反射

    下面小編就為大家?guī)硪黄獪\談Go語言中的結(jié)構(gòu)體struct & 接口Interface & 反射。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07

最新評論