欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

輸出: ABCDEFG

補(bǔ)充:golang通過(guò)在線讀取請(qǐng)求url返回的zip內(nèi)部?jī)?nèi)容

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

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

引用了以下包:

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

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

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

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

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

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

相關(guān)文章

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

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

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

    go獲取協(xié)程(goroutine)號(hào)的實(shí)例

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

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

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

    GO語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單TCP服務(wù)的方法

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

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

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

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

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

    GoLang channel使用介紹

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

    深入了解Golang包的獲取方法

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

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

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

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

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

最新評(píng)論