Go io包

61 阅读2分钟

文章首发于个人博客

OffsetWriter

OffsetWriterio.Writer的一个实现,它可以将写入的数据偏移指定的字节数后写入到另一个io.Writer中。

方法含义说明
Write将数据写入io.Writer
WriteAt将数据写入io.Writer,从指定位置开始
Seek设置指针位置

SectionReader

SectionReaderio.Reader的一个实现,它可以从另一个io.Reader中读取指定范围的数据。

方法含义说明
Outer获取底层的ReaderAt偏移量长度
Readio.Reader读取内容到字节切片读取后指针位置会移动
ReadAtio.Reader读取内容到字节切片,从指定位置开始读取后指针位置不会移动
Seek设置指针位置
Size返回区间的大小

PipeReader

PipeReaderio.Reader的一个实现,它可以从另一个io.Reader中读取数据。

方法含义说明
Read管道读取内容到字节切片
Close关闭PipeReader
CloseWithError关闭PipeReader并返回错误

PipeWriter

PipeWriterio.Writer的一个实现,它可以将数据写入到另一个io.Reader中。

方法含义说明
Write将数据写入io.Writer
Close关闭PipeWriter
CloseWithError关闭PipeWriter并返回错误

包函数

方法含义说明
Copy将数据从io.Reader复制到io.Writer
CopyBuffer将数据从io.Reader复制到io.Writer,使用指定的缓冲区
CopyN将数据从io.Reader复制到io.Writer,最多复制n个字节
LimitReaderio.Reader创建一个限制的读取范围的io.Reader
MultiReader将多个io.Reader组合成一个io.Reader先后读取,类似内容拼接
MultiWriter将多个io.Writer组合成一个io.Writer同时写入
NewOffsetWriterio.Writer创建一个带有偏移量的io.Writer
NewSectionReaderio.Reader创建一个指定范围的io.Reader
NopCloserio.Reader创建一个不关闭的io.ReadCloser
Pipe创建一个io.Readerio.Writer的管道
ReadAllio.Reader读取所有数据到字节切片,直到数据读完
ReadAtLeastio.Reader读取至少n个字节的数据到字节切片
ReadFullio.Reader读取数据到字节切片,直到切片填满
TeeReader创建一个io.Reader,将数据同时写入到io.Writer