第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

bytes.Buffer 的限制?

bytes.Buffer 的限制?

Go
不負(fù)相思意 2021-07-01 13:04:08
我正在嘗試使用“compress/gzip”包對一段字節(jié)進(jìn)行 gzip。我正在寫入 bytes.Buffer 并且我正在寫入 45976 字節(jié),當(dāng)我嘗試使用 gzip.reader 和 reader 函數(shù)解壓縮內(nèi)容時 - 我發(fā)現(xiàn)并非所有內(nèi)容都被恢復(fù)。bytes.buffer 有一些限制嗎?這是繞過或改變它的一種方式嗎?這是我的代碼(編輯):func compress_and_uncompress() {    var buf bytes.Buffer    w := gzip.NewWriter(&buf)    i,err := w.Write([]byte(long_string))    if(err!=nil){            log.Fatal(err)    }    w.Close()    b2 := make([]byte, 80000)    r, _ := gzip.NewReader(&buf)    j, err := r.Read(b2)    if(err!=nil){            log.Fatal(err)    }    r.Close()    fmt.Println("Wrote:", i, "Read:", j)}測試的輸出(選擇字符串作為 long_string)將給出 Wrote: 45976, Read 32768
查看完整描述

3 回答

?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗 獲得超4個贊

使用ioutil.ReadAll。io.Reader 的合同說它不必返回所有數(shù)據(jù),并且有一個很好的理由讓它與內(nèi)部緩沖區(qū)的大小無關(guān)。 ioutil.ReadAll像 io.Reader 一樣工作,但會一直讀到 EOF。


例如(未經(jīng)測試)


import "io/ioutil"


func compress_and_uncompress() {

    var buf bytes.Buffer

    w := gzip.NewWriter(&buf)

    i,err := w.Write([]byte(long_string))

    if err!=nil {

            log.Fatal(err)

    }

    w.Close()


    r, _ := gzip.NewReader(&buf)

    b2, err := ioutil.ReadAll(r)

    if err!=nil {

            log.Fatal(err)

    }

    r.Close()


    fmt.Println("Wrote:", i, "Read:", len(b2))

}


查看完整回答
反對 回復(fù) 2021-07-05
  • 3 回答
  • 0 關(guān)注
  • 276 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號