错误变量
基础接口
Read
Wirte
Seeker
Closer
Close()行为没有定义,所以可以通过指定行为实现
整个标准库都没有引用Closer只有定义
组合接口
之前的接口组合起来
指定读写器读写接口
ReaderFrom
从r中读取数据到对象的数据流中,
直到r返回EOF或错误
n为读取的字节,err为r返回的err
WriteTo
将对象的数据写入到w中
直到全部写完或返回数据为止
n为写入的字节数,err为w的err
指定偏移量接口
ReadAt
WriteAt
供外部调用的函数
Copy
示例
n,err:=io.Copy(os.Stdout, r)
CopyBuffer
示例
n,err:=io.CopyBuffer(os.Stdout, r, buf)//buf长度不会影响读取,类似于循环读取输出
CopyN
示例
n,err:=io.CopyN(os.Stdout, r, n)
LimitReader
示例
lr:=io.LimitReader(r, n)
//注意,此函数原型为
//func LimitReader(r Reader, n int64) Reader {
// return &LimitedReader{R:r, N:n}
//} 其返回一个LimitedReader
MultiReader
示例
顺序读取r1,r2,r3。
输出"first reader second reader third reader\n"
MutiWrite
示例
将r同时写入buf1和buf2
Pipe
示例
r,w:= io.Pipe()
go func(){
fmt.Fprint(w,"aaaaaa")
w.Close()
}()
io.Copy(os.Stdout, r);