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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

來(lái)自 bytes.Reader 的 Golang un-gzip

來(lái)自 bytes.Reader 的 Golang un-gzip

我有一個(gè)文件結(jié)構(gòu),它包含一個(gè)主體,它只是一個(gè)*bytes.Reader我在結(jié)構(gòu)上有兩個(gè)方法Zip() error和UnZip() error. 當(dāng)我調(diào)用Zip它時(shí),它應(yīng)該壓縮將壓縮數(shù)據(jù)存儲(chǔ)在正文中的文件,并且我應(yīng)該能夠調(diào)用UnZip同一個(gè)文件并將解壓縮的數(shù)據(jù)存儲(chǔ)在正文中。我在操場(chǎng)上的最小示例如下。https://play.golang.org/p/WmZtqtvnyN我能夠很好地壓縮文件,看起來(lái)它正在做它應(yīng)該做的事情;但是,當(dāng)我嘗試解壓縮得到的文件時(shí)unexpected EOF我已經(jīng)做了幾個(gè)小時(shí)了。任何幫助是極大的贊賞。
查看完整描述

2 回答

?
慕容708150

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

我相信您應(yīng)該在從底層緩沖區(qū)獲取字節(jié)之前關(guān)閉 gzip 編寫(xiě)器。


func (f *File) Zip() error {

    buff := bytes.NewBuffer(nil)


    writer := gzip.NewWriter(buff)

    defer writer.Close()


    _, err := f.Body.WriteTo(writer)

    if err != nil {

        return err

    }


    writer.Close() // I have added this line


    f.Body = bytes.NewReader(buff.Bytes())

    f.Name = fmt.Sprintf("%s.gz", f.Name)

    return nil

}


查看完整回答
反對(duì) 回復(fù) 2022-01-17
?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

根據(jù)文檔,gzip.NewReader_If r does not also implement io.ByteReader, the decompressor may read more data than necessary from r.

對(duì)于 bytes.Reader,A Reader implements the io.Reader, io.ReaderAt, io.WriterTo, io.Seeker, io.ByteScanner, and io.RuneScanner interfaces by reading from a byte slice.

問(wèn)題可能在于bytes.Reader沒(méi)有實(shí)現(xiàn)io.ByteReader。


查看完整回答
反對(duì) 回復(fù) 2022-01-17
  • 2 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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