如何將以下代碼轉換爲使用流/管道,以便我不需要將全部內容讀入內存? 喜歡的東西: http.Get("http://example.com/").Pipe("./data.txt")
如何在Go中管理HTTP響應文件?
package main
import ("net/http";"io/ioutil")
func main() {
resp, err := http.Get("http://example.com/")
check(err)
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
check(err)
err = ioutil.WriteFile("./data.txt", body, 0666)
check(err)
}
func check(e error) {
if e != nil {
panic(e)
}
}
Get的響應包含一個字段Body hat實現Reader。基本上可以將它傳遞給某種函數,將其內容寫入文件。在任何情況下,除非您提出要求,否則身體的全部內容都將加載到內存中。 – fuz 2013-05-01 01:05:52