返回顶部
首页 > 资讯 > 后端开发 > GO >Golang实现断点续传功能
  • 610
分享到

Golang实现断点续传功能

2024-04-02 19:04:59 610人浏览 安东尼
摘要

本文实例为大家分享了golang实现断点续传的具体代码,供大家参考,具体内容如下 1、将文件pic_src.jpg复制到pic_des.jpg文件; 2、读写过程中断时,读写的中断位

本文实例为大家分享了golang实现断点续传的具体代码,供大家参考,具体内容如下

1、将文件pic_src.jpg复制到pic_des.jpg文件;

2、读写过程中断时,读写的中断位置会记录在“pic_des.jpgtemp.txt”文件里;

3、下次再启动程序时,程序会接着“pic_des.jpgtemp.txt”文件里记录的中断位置,继续读、写文件,直到完成传输;

具体代码实现,如下:

package main
 
import (
    "fmt"
    "os"
    "strconv"
    "io"
    "log"
    //"time"
)
 
func main() {
    
 
    srcFile:="./0731/ddxc/pic_src.jpg"
    destFile:="./0731/ddxc/pic_des.jpg"
    tempFile:=destFile+"temp.txt"
    file1,err:=os.Open(srcFile)
    if err !=nil {
        log.Fatalln(err)
    }
    file2,_:=os.OpenFile(destFile,os.O_CREATE|os.O_WRONLY,os.ModePerm)
    file3,_:=os.OpenFile(tempFile,os.O_CREATE|os.O_RDWR,os.ModePerm)
 
    defer file1.Close()
    defer file2.Close()
    //1.读取临时文件中的数据,根据seek
    file3.Seek(0,io.SeekStart)
    bs:=make([]byte,100,100)
    n1,err:=file3.Read(bs)
    fmt.Println(n1)
    countStr:=string(bs[:n1])
    fmt.Println(countStr)
    count,_:=strconv.ParseInt(countStr,10,64)
    fmt.Println(count)
 
    //2. 设置读,写的偏移量
    file1.Seek(count,0) // 设置file1下一次读或者写的起点
    file2.Seek(count,0) // 设置file2下一次读或者写的起点
    data:=make([]byte,1024,1024)
    n2:=-1// 读取的数据量, 默认值
    n3:=-1//写出的数据量
    total :=int(count)//读取的总量
 
    for{
        //3.读取数据
        // 基于上面的起点,读取file1文件len(data)个字节,
        // n2:实际读取的字节数(小于等于len(data),将读取的字节存入data。
        n2,err=file1.Read(data)
        if err ==io.EOF{
            fmt.Println("文件复制完毕。。")
            file3.Close()
            //os.Remove(tempFile) //复制完,先不删除,验证最后存储的字节总数是不是跟复制的文件大小一致。
            break
        }
        //将数据写入到目标文件
        // 基于上面的起点,向file2文件写入len(data[:n2])个字节,也就是写入data中前n2个元素;
        // n3:实际写入的字节数(小于等于n2)。
        n3,_=file2.Write(data[:n2])
        total += n3
        //将复制总量,存储到临时文件中
        file3.Seek(0,io.SeekStart) // 设置file3的下次读写起点为源点:0点,即覆盖重写。
        file3.WriteString(strconv.Itoa(total))
 
        //假装断电
        //if total>1800000{
        //  panic("假装断电了。。。,假装的。。。")
        //}
    }
}

 4、检验下: 当文件复制完成后,pic_des.jpgtemp.txt文件里保存的字节数刚好等于传输文件大小,说明文件完整复制。

如下图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

您可能感兴趣的文档:

--结束END--

本文标题: Golang实现断点续传功能

本文链接: https://lsjlt.com/news/120954.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Golang实现断点续传功能
    本文实例为大家分享了Golang实现断点续传的具体代码,供大家参考,具体内容如下 1、将文件pic_src.jpg复制到pic_des.jpg文件; 2、读写过程中断时,读写的中断位...
    99+
    2024-04-02
  • Android实现断点续传功能
    本文实例为大家分享了Android实现断点续传的具体代码,供大家参考,具体内容如下 断点续传功能,在文件上传中断时,下次上传同一文件时,能在上次的断点处继续上传,可节省时间和流量 总...
    99+
    2024-04-02
  • C#中怎么实现断点续传功能
    本篇文章为大家展示了C#中怎么实现断点续传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。以下是一个请求报文与相应的回复报文的例子:GET /image/index_r4_c1.jpg&...
    99+
    2023-06-17
  • Java中怎么实现断点续传功能
    这篇文章给大家介绍Java中怎么实现断点续传功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(一)断点续传的原理   其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。   打个比方,浏览器请...
    99+
    2023-06-03
  • HTML5如何实现文件断点续传功能
    这篇文章主要为大家展示了“HTML5如何实现文件断点续传功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML5如何实现文件断点续传功能”这篇文章吧。HTM...
    99+
    2024-04-02
  • 通过Java实现文件断点续传功能
    目录什么是断点续传解决方案效果演示参考代码前端后端什么是断点续传 用户上传大文件,网络差点的需要历时数小时,万一线路中断,不具备断点续传的服务器就只能从头重传,而断点续传就是,允许用...
    99+
    2024-04-02
  • golang后端怎么实现断点续传
    在Go语言的后端中,实现断点续传可以通过以下几个步骤来完成:1. 客户端请求文件时,需要在HTTP请求的头部加上Range字段,指定...
    99+
    2023-10-20
    golang
  • android怎么实现多线程断点续传功能
    这篇文章主要介绍了android怎么实现多线程断点续传功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下布局:<xml version="...
    99+
    2023-05-30
    android 多线程
  • android原生实现多线程断点续传功能
    本文实例为大家分享了android实现多线程断点续传功能的具体代码,供大家参考,具体内容如下 需求描述: 输入一个下载地址,和要启动的线程数量,点击下载 利用多线程将文件下载到手机端...
    99+
    2024-04-02
  • Java实现断点续传功能的示例代码
    目录一、题目描述二、解题思路三、代码详解一、题目描述 题目实现:网络资源的断点续传功能。 二、解题思路 获取要下载的资源网址 显示网络资源的大小 上次读取到的字节位置以及未读取的字节...
    99+
    2022-11-13
    Java实现断点续传 Java断点续传
  • Node.js实现断点续传
    目录方案分析 切片 断点续传 具体解决流程 逻辑分析 前端 服务端 小结 方案分析 切片 就是对上传视频进行切分,具体操作为: File.slice(start...
    99+
    2024-04-02
  • Android入门之利用OKHttp实现断点续传功能
    目录简介课程目标断点下载的原理自定义Android里的ProgressBar的样式项目结构前端代码后端代码DbOpeerateHelper.javaDBService.javaDow...
    99+
    2023-01-09
    Android OKHttp断点续传功能 Android OKHttp断点续传 Android 断点续传 Android OKHttp
  • 怎么通过Java实现文件断点续传功能
    这篇文章主要介绍“怎么通过Java实现文件断点续传功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么通过Java实现文件断点续传功能”文章能帮助大家解决问题。什么是断点续传用户上传大文件,网络差...
    99+
    2023-06-30
  • Android实现网络多线程断点续传下载功能
    我们编写的是Andorid的HTTP协议多线程断点下载应用程序。直接使用单线程下载HTTP文件对我们来说是一件非常简单的事。那么,多线程断点需要什么功能? 1.多线程下载 2...
    99+
    2022-06-06
    多线程 断点续传 断点 线程 Android
  • Android多线程断点续传下载功能实现代码
    原理 其实断点续传的原理很简单,从字面上理解,所谓断点续传就是从停止的地方重新下载。 断点:线程停止的位置。 续传:从停止的位置重新下载。 用代码解析就是: 断点:当...
    99+
    2022-06-06
    android多线程 断点续传 断点 线程 Android
  • Node.js断点续传的实现
    前言 平常业务需求:上传图片、Excel等,毕竟几M的大小可以很快就上传到服务器。 针对于上传视频等大文件几百M或者几G的大小,就需要等待比较长的时间。 这就产生了对应的解决方法...
    99+
    2024-04-02
  • Python 工具类实现大文件断点续传功能详解
    依赖 os、sys、requests 工具代码 废话不多说,上代码。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Cre...
    99+
    2024-04-02
  • FileZilla如何实现断点续传
    这篇文章主要介绍了FileZilla如何实现断点续传,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。FileZilla断点续传功能可以说几乎是每个FTP软件必备的功能,也可以说...
    99+
    2023-06-16
  • java实现文件的断点续传
    所谓文件的断点续传,就是一个线程传输文件,另一个线程控制传输标识,以达到暂停文件效果、恢复文件上传的效果。 本demo使用最基本的线程之间的通信来实现一个简单的断点续传。 packa...
    99+
    2024-04-02
  • Android实现多线程断点续传
    本文实例为大家分享了Android实现多线程断点续传的具体代码,供大家参考,具体内容如下 多线程下载涉及到的知识点: 1、Service的使用:我们在Service中去下载文件;2、...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作