使用Go 高效下載大檔案
下載大檔案時,避免將整個內容寫入記憶體之前,這一點至關重要一個文件。這種方法可能會佔用大量記憶體並導致效能問題。在 Go 中,有一種更有效的方法來處理此任務。
直接檔案儲存
在 Go 中下載大文件,同時將內容直接儲存到檔案中,利用 io.Copy 函數。下面的程式碼片段說明如何實現此目的:
import ( "net/http" "io" "os" ) func main() { out, err := os.Create("output.txt") if err != nil { // Handle error } defer out.Close() resp, err := http.Get("http://example.com/") if err != nil { // Handle error } defer resp.Body.Close() n, err := io.Copy(out, resp.Body) if err != nil { // Handle error } // Do something with n, e.g. print it }
在此範例中,http.Response.Body 是一個讀取器,可以與 io.Copy 等函數一起使用。它不是將整個檔案載入到記憶體中,而是一次讀取和寫入區塊,從而最大限度地提高記憶體利用率。
以上是Go中如何有效率地下載大檔案而不造成記憶體超載?的詳細內容。更多資訊請關注PHP中文網其他相關文章!