本文介绍Go 标准库 io 常用的导出函数,结构体和方法。
io 包提供了对 I/O 原语的基本接口,这些接口抽象出了泛用的函数并附加了一些操作。因为这些接口是对底层实现完全不同的低水平操作的包装,除非得到其它方面的通知,客户端不应假设它们是并发安全的。
1. io 包的接口
Reader
type Reader interface {
Read(p []byte) (n int, err error)
}
Reader 接口用于包装基本的读取方法。Read 方法读取 len(p)
字节数据写入p。它返回写入的字节数和遇到的任何错误。即使Read方法返回值 n < len(p)
,本方法在被调用时仍可能使用p的全部长度作为暂存空间。如果有部分可用数据,但不够len(p)字节,Read会返回可以读取到的数据,而不是等待更多数据。
Writer
type Writer interface {
Write(p []byte) (n int, err error)
}
Writer 接口用于包装基本的写入方法。Write 方法将 len(p)
字节数据从p写入底层的数据流。它会返回写入的字节数据(0 &l