打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Golang Go语言断点续传
package mainimport (    "http"    "os"    "io"    "strconv")const (    UA = "Golang Downloader from Kejibo.com")func main() {    f, err := os.OpenFile("./file.exe", os.O_RDWR, 0666)  //其实这里的 O_RDWR应该是 O_RDWR|O_CREATE,也就是文件不存在的情况下就建一个空文件,但是因为windows下还有BUG,如果使用这个O_CREATE,就会直接清空文件,所以这里就不用了这个标志,你自己事先建立好文件。    if err != nil { panic(err) }    stat, err := f.Stat()   //获取文件状态    if err != nil { panic(err) }    f.Seek(stat.Size, 0)    //把文件指针指到文件末,当然你说为何不直接用 O_APPEND 模式打开,没错是可以。我这里只是试验。    url := "http://dl.google.com/chrome/install/696.57/chrome_installer.exe"    var req http.Request    req.Method = "GET"    req.UserAgent = UA    req.Close = true    req.URL, err = http.ParseURL(url)    if err != nil { panic(err) }    header := http.Header{}    header.Set("Range", "bytes=" + strconv.Itoa64(stat.Size) + "-")    req.Header = header    resp, err := http.DefaultClient.Do(&req)    if err != nil { panic(err) }    written, err := io.Copy(f, resp.Body)    if err != nil { panic(err) }    println("written: ", written)}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Golang的坑之http读取大文件必须读完
golang中net/http包的简单使用
一份适合团队和个人的Golang 编码规范
从Python到Golang
Golang多级内存池设计与实现
Golang中的错误处理:全面指南及示例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服