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.Reader
andzip.Writer
不實(shí)現(xiàn)io.Reader
and?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.Reader
or沒有意義io.Writer
,所以不要這樣做。與 類似archive/zip
,其中的各個(gè)文件也可以這樣做。
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)