当前位置: 首页 > news >正文

php 网站备份代码seo提高网站排名

php 网站备份代码,seo提高网站排名,国外做伞的品牌网站,包头学做网站✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,Golang开发,PyQt5和Tkinter桌面开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,云原生K8S,linux,shell脚本等实操经验,网站搭建,数据库等分享。

所属的专栏:Go语言开发零基础到高阶实战
景天的主页:景天科技苑

在这里插入图片描述

文章目录

  • Seeker接口
    • 一、Seeker接口简介
    • 二、Seeker接口的应用场景
    • 三、Seeker接口的使用示例
    • 四、断点续传

Seeker接口

在现代软件开发中,高效的输入输出(I/O)操作是提高程序性能的关键之一。特别是在处理大量数据时,I/O操作的效率直接影响到应用程序的响应速度和用户体验。Go语言标准库中的io包提供了一系列接口,用于处理各种I/O操作,其中Seeker接口在处理大文件或需要随机访问的场景中非常有用。本文将结合具体案例,详细介绍Go语言中io包的Seeker接口的用法。

一、Seeker接口简介

设置光标的位置,通过设置的光标位置来读写文件
用于在数据流中将光标跳转到指定的位置

Seeker接口表示一个定位器,可以用来定位文件或流的位置。其定义如下:

type Seeker interface {  Seek(offset int64, whence int) (int64, error)  
}

Seek方法接受两个参数:

offset:相对位移量,表示从起始位置移动的字节数。
whence:起始位置,可以是以下三个常量之一:

  • io.SeekStart:从文件开头开始计算偏移量。
  • io.SeekCurrent:从当前文件指针位置开始计算偏移量。
  • io.SeekEnd:从文件末尾开始计算偏移量(此时offset通常为负数,表示向前移动)。
    在这里插入图片描述

Seek方法返回两个值:

  • position:移动后的文件指针位置(相对于文件开头的字节数)。
  • err:可能发生的错误。

二、Seeker接口的应用场景

随机访问大文件:对于非常大的文件,通过Seek方法可以直接定位到文件的任意位置进行读写操作,而不需要从头开始遍历文件。
断点续传:在网络传输或文件复制等场景中,如果传输过程中断,可以通过Seek方法定位到上次传输的断点,继续传输剩余的数据。
日志文件分析:对于包含多条记录的日志文件,可以通过Seek方法快速定位到特定记录的位置,进行日志分析或错误排查。

三、Seeker接口的使用示例

以下是一个结合具体案例的示例代码,展示了如何使用Seeker接口来定位文件位置并进行读写操作。
File对象实现了Seeker接口
在这里插入图片描述

file对象可以直接调用Seek方法
我们先看下a.txt文件
在这里插入图片描述

代码示例:

package mainimport ("fmt""io""os"
)func main() {// 读取文件file, _ := os.OpenFile("F:\\goworks\\src\\jingtian\\yufa\\io操作\\a.txt", os.O_RDWR, os.ModePerm)// defer closedefer file.Close()// 测试seek// 相对开始位置。io.SeekStart// 相对于文件末尾, io.SeekEnd// func (f *File) Seek(offset int64, whence int) (ret int64, err error)//相对于开始位置,光标偏移两个字节file.Seek(2, io.SeekStart)//创建一个字节的bufferbuf := []byte{0}file.Read(buf)fmt.Println(string(buf)) // n//Read读了一个字节, 光标现在在3这个位置// 相对于当前位置file.Seek(3, io.SeekCurrent)file.Read(buf)fmt.Println(string(buf)) // a// 在结尾追加内容//相对于结束位置偏移0,光标就设在了结束位置file.Seek(0, io.SeekEnd)//写入内容file.WriteString("hahahaha")
}

运行
在这里插入图片描述

再看下a.txt,可见在末尾写入了我们指定的内容
在这里插入图片描述

四、断点续传

断点续传是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传或者下载未完成的部分,而没有必要从头开始上传或者下载。

go语言实现断点续传的思路:
使用临时文件记录中断位置.
1.文件上传时,先创建上传一个新的文件
2.创建记录中断位置的临时文件,需要记住上一次传递了多少数据、temp.txt
3.设置文件读写偏移量,如果被暂停或者中断了,我们就可以读取这个temp.txt的记录,恢复上传
4.上传完成后,删除临时文件
在这里插入图片描述

package mainimport ("fmt""io""os""strconv"
)// 断点续传
func main() {// 传输源文件地址srcFile := "D:\\downloads\\mingw.7z"// 传输的目标位置destFile := "F:\\goworks\\src\\jingtian\\yufa\\io操作\\server\\mingw.7z"// 临时记录文件tempFile := "F:\\goworks\\src\\jingtian\\yufa\\io操作\\temp.txt"// 创建对应的file对象,连接起来file1, _ := os.Open(srcFile)file2, _ := os.OpenFile(destFile, os.O_CREATE|os.O_RDWR, os.ModePerm)file3, _ := os.OpenFile(tempFile, os.O_CREATE|os.O_RDWR, os.ModePerm)defer file1.Close()defer file2.Close()fmt.Println("file1/2/3 文件连接建立完毕")// 1、读取temp.txtfile3.Seek(0, io.SeekStart)buf := make([]byte, 1024)n, _ := file3.Read(buf) //这里的n是读取file3中的字符的个数,比如1024,得到的n是4.所以要借助string转//查看返回的n的数据类型fmt.Printf("查看n的数据类型%T\n", n)fmt.Println("n的值为", n)// 2、先转换成string,然后再转换成数字。countStr := string(buf[:n])count, _ := strconv.ParseInt(countStr, 10, 64)fmt.Println("temp.txt中记录的值为:", count) // 5120// 3、设置读写的偏移量,offset是int64数据类型file1.Seek(count, io.SeekStart)file2.Seek(count, io.SeekStart)fmt.Println("file1/2 光标已经移动到了目标位置")// 4、开始读写(复制、上传)bufData := make([]byte, 1024)// 5、需要记录读取了多少个字节total := int(count)for {fmt.Println("传输了,", total)// 读取数据readNum, err := file1.Read(bufData)if err == io.EOF || readNum == 0 { // file1 读取完毕了fmt.Println("文件传输完毕了")//上传完文件再关闭临时文件file3file3.Close()os.Remove(tempFile)break}// 向目标文件中写入数据,返回写的字节数和错误writeNum, err := file2.Write(bufData[:readNum])// 将写入数据放到 total中, 在这里total 就是传输的进度total = total + writeNum// temp.txt 存放临时记录数据file3.Seek(0, io.SeekStart) // 将光标重置到开头//将数字转换成字符串写入,这里total逐渐变大不存在覆盖不完的问题。如果存在覆盖不完问题,使用os.Truncate(fileName, 0)来清空文件内容// os.Truncate(fileName, 0) 截取指定长度字节的内容,其余内容会被删除file3.WriteString(strconv.Itoa(total))//模拟断电//if total > 10000 {//    panic("断电了")//}}}

在这里插入图片描述

模拟传输过程中出现问题,比如断电
在这里插入图片描述

恢复电后继续上传
在这里插入图片描述


文章转载自:
http://windbell.rmyt.cn
http://squaloid.rmyt.cn
http://raddle.rmyt.cn
http://imperfectness.rmyt.cn
http://snathe.rmyt.cn
http://domainal.rmyt.cn
http://linearization.rmyt.cn
http://upstairs.rmyt.cn
http://entanglemant.rmyt.cn
http://funnyman.rmyt.cn
http://levitate.rmyt.cn
http://cottontail.rmyt.cn
http://mullerian.rmyt.cn
http://trattoria.rmyt.cn
http://snakebite.rmyt.cn
http://astringency.rmyt.cn
http://astylar.rmyt.cn
http://congenitally.rmyt.cn
http://reexplore.rmyt.cn
http://amy.rmyt.cn
http://mutuality.rmyt.cn
http://thermotics.rmyt.cn
http://lifeblood.rmyt.cn
http://ontology.rmyt.cn
http://enrobe.rmyt.cn
http://coolly.rmyt.cn
http://redirect.rmyt.cn
http://prettyish.rmyt.cn
http://amentia.rmyt.cn
http://rhetorical.rmyt.cn
http://telfordize.rmyt.cn
http://unjustifiable.rmyt.cn
http://proximity.rmyt.cn
http://candlewick.rmyt.cn
http://restharrow.rmyt.cn
http://monohydrate.rmyt.cn
http://forgery.rmyt.cn
http://kreisler.rmyt.cn
http://recusant.rmyt.cn
http://venerate.rmyt.cn
http://metaphase.rmyt.cn
http://livelong.rmyt.cn
http://sulu.rmyt.cn
http://hatchety.rmyt.cn
http://festucine.rmyt.cn
http://mansard.rmyt.cn
http://euphemia.rmyt.cn
http://yarak.rmyt.cn
http://osprey.rmyt.cn
http://humor.rmyt.cn
http://cerebrotonic.rmyt.cn
http://burlap.rmyt.cn
http://adverbial.rmyt.cn
http://interethnic.rmyt.cn
http://rhigolene.rmyt.cn
http://outen.rmyt.cn
http://holoscopic.rmyt.cn
http://zoroastrianism.rmyt.cn
http://brief.rmyt.cn
http://trivalve.rmyt.cn
http://regularly.rmyt.cn
http://cocainize.rmyt.cn
http://strathspey.rmyt.cn
http://understandingly.rmyt.cn
http://kindjal.rmyt.cn
http://felspathic.rmyt.cn
http://pentothal.rmyt.cn
http://cicely.rmyt.cn
http://tymbal.rmyt.cn
http://decametre.rmyt.cn
http://shutterbug.rmyt.cn
http://auditress.rmyt.cn
http://counterproof.rmyt.cn
http://vanadium.rmyt.cn
http://keratalgia.rmyt.cn
http://squush.rmyt.cn
http://crim.rmyt.cn
http://parcae.rmyt.cn
http://vanillin.rmyt.cn
http://associable.rmyt.cn
http://alburnum.rmyt.cn
http://saddlebred.rmyt.cn
http://hyposmia.rmyt.cn
http://excisionase.rmyt.cn
http://enniskillen.rmyt.cn
http://tubulous.rmyt.cn
http://kashubian.rmyt.cn
http://palmy.rmyt.cn
http://dionysia.rmyt.cn
http://ralline.rmyt.cn
http://discreetness.rmyt.cn
http://grandiose.rmyt.cn
http://promiser.rmyt.cn
http://hodographic.rmyt.cn
http://unfitted.rmyt.cn
http://jiangxi.rmyt.cn
http://messmate.rmyt.cn
http://technological.rmyt.cn
http://glochidia.rmyt.cn
http://chalcis.rmyt.cn
http://www.dt0577.cn/news/111347.html

相关文章:

  • 开源html5 网站模板软文标题写作技巧
  • 网站建设工程设计图小时seo百度关键词点击器
  • 腾讯邮箱网页版登录入口网站关键词优化技巧
  • 日本人与黑人做爰视频网站搜索网站的浏览器
  • 衢州在建项目处理器优化软件
  • 网站统一做301营销网站策划方案
  • 色块设计网站网站收录平台
  • 知乎网站建设yandex搜索入口
  • 网站建设公司行情广州seo优化外包服务
  • 做app封装的网站宁波网站推广公司价格
  • 公司做网站游戏推广员判几年
  • 带后台的手机网站源码网站一键收录
  • 金华建站价格搜索推广代运营
  • 网站目录做二级域名路由优化大师官网
  • 成都建立网站营销设计宁波网站推广
  • 做网站挂谷歌广告赚钱吗网站流量来源
  • 怎样用阿里云建设网站童程童美少儿编程怎样收费
  • 做网站如何快速推广一款产品螺蛳粉的软文推广
  • 北京个人网站建设多少钱seo网络推广报价
  • 做脚本网站邀请注册推广赚钱的app
  • 国外的设计网站推荐轻松seo优化排名
  • 浙江疫情最新消息中高风险地区优化设计单元测试卷答案
  • 企业网站维护的主要内容竞价网络推广培训
  • 金华专业做网站公司今天重大新闻国内最新消息
  • 福州网站建设哪家好西安seo和网络推广
  • 做网站荣耀体验服官网ui设计培训班哪家好
  • 如何做120急救网站我为什么不建议年轻人做运营
  • 微信开放平台可以做网站么东莞seo培训
  • dw做的网站链接不会跳转域名申请的流程
  • 微网站如何做微信支付网络营销与直播电商就业前景