在 Go 语言中,可以使用标准库中的 net/http
包来下载文件。以下是一个简单的示例代码,展示了如何从 URL 下载文件并保存到本地:
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
// 要下载的文件 URL
url := "https://example.com/file.zip"
// 本地保存路径
filePath := "file.zip"
// 创建 HTTP GET 请求
resp, err := http.Get(url)
if err != nil {
fmt.Println("Error downloading file:", err)
return
}
defer resp.Body.Close()
// 创建本地文件
outFile, err := os.Create(filePath)
if err != nil {
fmt.Println("Error creating file:", err)
return
}
defer outFile.Close()
// 将下载的内容写入本地文件
_, err = io.Copy(outFile, resp.Body)
if err != nil {
fmt.Println("Error saving file:", err)
return
}
fmt.Println("File downloaded successfully:", filePath)
}
代码解释:
http.Get(url)
:发起一个 GET 请求,获取文件内容。如果请求失败,返回错误信息。defer resp.Body.Close()
:确保在函数结束时关闭响应体,以释放资源。os.Create(filePath)
:在本地创建一个空文件,准备写入下载的内容。io.Copy(outFile, resp.Body)
:将从 URL 获取的文件内容复制到本地文件中。defer outFile.Close()
:在函数结束时关闭文件,确保文件内容正确写入并保存。