文章首发于个人博客
OffsetWriter
OffsetWriter是io.Writer的一个实现,它可以将写入的数据偏移指定的字节数后写入到另一个io.Writer中。
| 方法 | 含义 | 说明 |
|---|---|---|
| Write | 将数据写入io.Writer | |
| WriteAt | 将数据写入io.Writer,从指定位置开始 | |
| Seek | 设置指针位置 |
SectionReader
SectionReader是io.Reader的一个实现,它可以从另一个io.Reader中读取指定范围的数据。
| 方法 | 含义 | 说明 |
|---|---|---|
| Outer | 获取底层的ReaderAt、偏移量和长度 | |
| Read | 从io.Reader读取内容到字节切片 | 读取后指针位置会移动 |
| ReadAt | 从io.Reader读取内容到字节切片,从指定位置开始 | 读取后指针位置不会移动 |
| Seek | 设置指针位置 | |
| Size | 返回区间的大小 |
PipeReader
PipeReader是io.Reader的一个实现,它可以从另一个io.Reader中读取数据。
| 方法 | 含义 | 说明 |
|---|---|---|
| Read | 从管道读取内容到字节切片 | |
| Close | 关闭PipeReader | |
| CloseWithError | 关闭PipeReader并返回错误 |
PipeWriter
PipeWriter是io.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个字节 | |
| LimitReader | 从io.Reader创建一个限制的读取范围的io.Reader | |
| MultiReader | 将多个io.Reader组合成一个io.Reader | 先后读取,类似内容拼接 |
| MultiWriter | 将多个io.Writer组合成一个io.Writer | 同时写入 |
| NewOffsetWriter | 从io.Writer创建一个带有偏移量的io.Writer | |
| NewSectionReader | 从io.Reader创建一个指定范围的io.Reader | |
| NopCloser | 从io.Reader创建一个不关闭的io.ReadCloser | |
| Pipe | 创建一个io.Reader和io.Writer的管道 | |
| ReadAll | 从io.Reader读取所有数据到字节切片,直到数据读完 | |
| ReadAtLeast | 从io.Reader读取至少n个字节的数据到字节切片 | |
| ReadFull | 从io.Reader读取数据到字节切片,直到切片填满 | |
| TeeReader | 创建一个io.Reader,将数据同时写入到io.Writer中 |