当前位置:首页 > 科技  > 软件

Golang 中的 IO 包详解:指定读写对象和偏移量接口

来源: 责编: 时间:2023-08-09 23:03:36 435观看
导读io.ReaderFromtype ReaderFrom interface { ReadFrom(r Reader) (n int64, err error)}接口中定义了一个 ReadFrom 方法,常见用法是将实现了该接口的对象(比如文件或网络连接)的数据读取到一个实现了 io.Writer 接口的对

iZb28资讯网——每日最新资讯28at.com

io.ReaderFrom

type ReaderFrom interface {	ReadFrom(r Reader) (n int64, err error)}

接口中定义了一个 ReadFrom 方法,常见用法是将实现了该接口的对象(比如文件或网络连接)的数据读取到一个实现了 io.Writer 接口的对象。iZb28资讯网——每日最新资讯28at.com

一些标准库中的文件类型,在实现了 io.ReadFrom 接口后,可以通过 io.Copy 函数方便的将数据从源文件拷贝到目的文件。iZb28资讯网——每日最新资讯28at.com

具体使用方法可参考标准库中实现该接口的类型,例如在 os.File 类型中:iZb28资讯网——每日最新资讯28at.com

func (f *File) ReadFrom(r io.Reader) (n int64, err error)

io.WriterTo

type WriterTo interface {	WriteTo(w Writer) (n int64, err error)}

接口中定义了一个 WriteTo 方法,常用于将实现了该接口的对象(比如字节数组或文件)的数据写入到一个实现了io.Reader接口的对象中。iZb28资讯网——每日最新资讯28at.com

一些标准库中的文件类型,在实现了 io.WriterTo 接口后,可以通过 io.Copy 函数方便的将数据从源文件拷贝到目的文件。iZb28资讯网——每日最新资讯28at.com

具体使用方法可参考标准库中实现该接口的类型,例如在 bytes.Buffer 类型中:iZb28资讯网——每日最新资讯28at.com

func (b *Buffer) WriteTo(w io.Writer) (n int64, err error)

io.ReaderAt

type ReaderAt interface {	ReadAt(p []byte, off int64) (n int, err error)}

接口中定义了一个 ReadAt 方法,常用于从实现了该接口的对象(比如文件或网络连接)中读取指定位置的数据。iZb28资讯网——每日最新资讯28at.com

ReadAt 方法允许从指定偏移量位置开始读取数据,并将读取的数据存入指定的缓冲区中,并返回实际读取的字节数。使用该接口可实现高效的随机读取操作。iZb28资讯网——每日最新资讯28at.com

具体使用方法可参考标准库中实现该接口的类型,例如在 os.File 类型中:iZb28资讯网——每日最新资讯28at.com

func (f *File) ReadAt(b []byte, off int64) (n int, err error)

当在 os.File 中调用 ReadAt 方法时,file 被视为一个支持随机存取的字节数组,并可以使用该方法在其中进行读取操作,其中 b 代表读取的字节数组,off 代表字节偏移量。iZb28资讯网——每日最新资讯28at.com

io.WriterAt

type WriterAt interface {	WriteAt(p []byte, off int64) (n int, err error)}

接口中定义了一个 WriteAt 方法,常用于向实现了该接口的对象(比如文件或网络连接)中指定位置写入数据。iZb28资讯网——每日最新资讯28at.com

WriteAt 方法允许向指定偏移量位置开始写入数据,这个方法可以高效地实现随机写入操作。iZb28资讯网——每日最新资讯28at.com

具体使用方法可参考标准库中实现该接口的类型,例如在 os.File 类型中:iZb28资讯网——每日最新资讯28at.com

func (f *File) WriteAt(b []byte, off int64) (n int, err error)

当在 os.File 中调用 WriteAt 方法时,file 被视为一个支持随机存取的字节数组,并可以使用该方法在其中进行写入操作,其中 b 代表要写入的字节数组,off 代表字节偏移量。iZb28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-5187-0.htmlGolang 中的 IO 包详解:指定读写对象和偏移量接口

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: GET和POST的区别—Java模拟Postman发Post请求

下一篇: 想要控制好权限,这八个注解必须知道!

标签:
  • 热门焦点
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • 深度探索 Elasticsearch 8.X:function_score 参数解读与实战案例分析

    在 Elasticsearch 中,function_score 可以让我们在查询的同时对搜索结果进行自定义评分。function_score 提供了一系列的参数和函数让我们可以根据需求灵活地进行设置。近期
  • 一文掌握 Golang 模糊测试(Fuzz Testing)

    模糊测试(Fuzz Testing)模糊测试(Fuzz Testing)是通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。可以用来发现应用程序、操作系统和网络协议等中的漏洞或
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    ©自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 3699元!iQOO Neo8 Pro顶配版今日首销:1TB UFS 4.0同价位唯一

    5月23日,iQOO推出了全新的iQOO Neo8系列,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更是首发搭载了联发科天玑9200+旗舰
  • 英特尔Xe HPG游戏显卡:拥有512EU,单风扇版本

    据10 月 30 日外媒 TheVerge 消息报道,英特尔 Xe HPG Arc Alchemist 的正面实被曝光,不仅拥有 512 EU 版显卡,还拥有 128EU 的单风扇版本。另外,这款显卡 PCB
Top