在 Go 语言中,可以使用标准库中的 net/http
包来下载文件。以下是一个简单的示例代码,展示了如何从 URL 下载文件并保存到本地:
package mainimport ("fmt""io""net/http""os"
)func main() {// 要下载的文件 URLurl := "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()
:在函数结束时关闭文件,确保文件内容正确写入并保存。