1 回答
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
據(jù)我了解,該包
archive/zip不允許將 zip 文件解壓縮為流。我們必須將 zip 完全加載到內(nèi)存中或作為文件加載,然后再解壓縮。
錯(cuò)誤的。是的,一些元數(shù)據(jù)需要加載到內(nèi)存中,但您不需要將所有內(nèi)容加載到內(nèi)存中。您可以從 zip 存檔中提取單個(gè)文件。
是的,zip.Readerandzip.Writer不實(shí)現(xiàn)io.Readerand?io.Writer,因?yàn)樗鼈儾皇亲止?jié)的單個(gè)源或目標(biāo)。但其中的文件確實(shí)如此。所以其中的文件實(shí)現(xiàn)了io.Reader和io.Writer.?更具體地說,存檔中的文件由 表示zip.File,可以使用 來獲取io.Reader來獲取其(未壓縮的)內(nèi)容File.Open()。當(dāng)您使用eg向zip存檔添加新條目時(shí)Writer.Create(),它會返回一個(gè),io.Writer因?yàn)樗碜止?jié)目標(biāo),您可以將文件的內(nèi)容寫入其中。
回到你的 exmaple:MyZip也不代表字節(jié)的單個(gè)源或目的地,因此它本身實(shí)現(xiàn)io.Readeror沒有意義io.Writer,所以不要這樣做。與 類似archive/zip,其中的各個(gè)文件也可以這樣做。
- 1 回答
- 0 關(guān)注
- 149 瀏覽
添加回答
舉報(bào)
