io
实例名 | 实例描述 |
---|---|
Discard | (io.discard) io.discard{} |
EOF | (errors.errorString) &errors.errorString{s: "EOF"} |
函数名 | 函数描述/介绍 |
---|---|
io.Copy | Copy 将 reader 中的数据拷贝到 writer 中,直到读取到 EOF 或者发生错误,返回拷贝的字节数和错误 |
io.CopyN | CopyN 将 reader 中的数据拷贝到 writer 中,直到读取到 EOF 或者拷贝了 n 个字节,返回拷贝的字节数和错误 |
io.LimitReader | LimitReader 返回一个 Reader,该 Reader 从 r 中读取字节,但在读取 n 个字节后就会返回 EOF |
io.MultiReader | MultiReader 返回一个 Reader,该 Reader 从多个 Reader 中读取数据 |
io.NopCloser | NopCloser 返回一个 ReadCloser,该 ReadCloser 从 r 中读取数据,并实现了一个空的 Close 方法 |
io.Pipe | Pipe 创建一个管道,返回一个读取端和一个写入端以及错误 |
io.ReadAll | ReadAll 读取 Reader 中的所有字节,返回读取到的数据和错误 |
io.ReadEvery1s | ReadEvery1s 每秒读取 Reader 一次,直到读取到 EOF 或者回调函数返回 false |
io.ReadFile | ReadFile 读取指定文件中的所有内容,返回读取到的数据和错误 |
io.ReadStable | ReadStable 从 reader 中稳定地读取数据,直到读取到 EOF 或者超时,返回读取到的数据 |
io.TeeReader | TeeReader 返回一个 Reader,该 Reader 从 r 中读取字节,并将读取到的字节写入 w 中 该 Reader 通常用于保存已经读取的数据副本 |
io.WriteString | WriteString 将字符串 s 写入 writer 中,返回写入的字节数和错误 |
#
函数定义#
Copy#
详细描述Copy 将 reader 中的数据拷贝到 writer 中,直到读取到 EOF 或者发生错误,返回拷贝的字节数和错误
Example:
n, err = io.Copy(writer, reader)
#
定义Copy(writer io.Writer, reader io.Reader) (written int64, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
writer | io.Writer | |
reader | io.Reader |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
written | int64 | |
err | error |
#
CopyN#
详细描述CopyN 将 reader 中的数据拷贝到 writer 中,直到读取到 EOF 或者拷贝了 n 个字节,返回拷贝的字节数和错误
Example:
n, err = io.CopyN(writer, reader, 1024)
#
定义CopyN(writer io.Writer, reader io.Reader, n int64) (written int64, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
writer | io.Writer | |
reader | io.Reader | |
n | int64 |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
written | int64 | |
err | error |
#
LimitReader#
详细描述LimitReader 返回一个 Reader,该 Reader 从 r 中读取字节,但在读取 n 个字节后就会返回 EOF
Example:
lr = io.LimitReader(reader, 1024)
#
定义LimitReader(r io.Reader, n int64) io.Reader
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
r | io.Reader | |
n | int64 |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | io.Reader |
#
MultiReader#
详细描述MultiReader 返回一个 Reader,该 Reader 从多个 Reader 中读取数据
Example:
mr = io.MultiReader(reader1, reader2) // 读取 mr 即按照顺序读取 reader1 和 reader2 中的数据io.ReadAll(mr)
#
定义MultiReader(readers ...io.Reader) io.Reader
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
readers | ...io.Reader |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | io.Reader |
#
NopCloser#
详细描述NopCloser 返回一个 ReadCloser,该 ReadCloser 从 r 中读取数据,并实现了一个空的 Close 方法
Example:
r = io.NopCloser(reader)r.Close() // 什么都不做
#
定义NopCloser(r io.Reader) io.ReadCloser
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
r | io.Reader |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | io.ReadCloser |
#
Pipe#
详细描述Pipe 创建一个管道,返回一个读取端和一个写入端以及错误
Example:
r, w, err = os.Pipe()die(err)
go func { w.WriteString("hello yak") w.Close() }
bytes, err = io.ReadAll(r)die(err)dump(bytes)
#
定义Pipe() (r *os.File, w *os.File, err error)
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r | *os.File | |
w | *os.File | |
err | error |
#
ReadAll#
详细描述ReadAll 读取 Reader 中的所有字节,返回读取到的数据和错误
Example:
data, err = ioutil.ReadAll(reader)
#
定义ReadAll(r io.Reader) ([]byte, error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
r | io.Reader |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte | |
r2 | error |
#
ReadEvery1s#
详细描述ReadEvery1s 每秒读取 Reader 一次,直到读取到 EOF 或者回调函数返回 false
Example:
r, w, err = io.Pipe() // 创建一个管道,返回一个读取端和一个写入端以及错误die(err)go func{for {w.WriteString("hello yak\n")time.Sleep(1)}}io.ReadEvery1s(context.New(), r, func(data) {println(string(data))return true})
#
定义ReadEvery1s(c context.Context, reader io.Reader, f func([]byte) bool)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
c | context.Context | |
reader | io.Reader | |
f | func([]byte) bool |
#
ReadFile#
详细描述ReadFile 读取指定文件中的所有内容,返回读取到的数据和错误
Example:
// 假设存在文件 /tmp/test.txt,内容为 "hello yak"data, err = ioutil.ReadFile("/tmp/test.txt") // data = b"hello yak", err = nil
#
定义ReadFile(path string) ([]byte, error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
path | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte | |
r2 | error |
#
ReadStable#
详细描述ReadStable 从 reader 中稳定地读取数据,直到读取到 EOF 或者超时,返回读取到的数据
Example:
data = io.ReadStable(reader, 60)
#
定义ReadStable(reader io.Reader, float float64) []byte
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
reader | io.Reader | |
float | float64 |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | []byte |
#
TeeReader#
详细描述TeeReader 返回一个 Reader,该 Reader 从 r 中读取字节,并将读取到的字节写入 w 中
该 Reader 通常用于保存已经读取的数据副本
Example:
tr = io.TeeReader(reader, buf)io.ReadAll(tr)// 现在 buf 中也保存了 reader 中的读到的所有数据
#
定义TeeReader(r io.Reader, w io.Writer) io.Reader
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
r | io.Reader | |
w | io.Writer |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
r1 | io.Reader |
#
WriteString#
详细描述WriteString 将字符串 s 写入 writer 中,返回写入的字节数和错误
Example:
n, err = io.WriteString(writer, "hello yak")
#
定义WriteString(writer io.Writer, s string) (n int, err error)
#
参数参数名 | 参数类型 | 参数解释 |
---|---|---|
writer | io.Writer | |
s | string |
#
返回值返回值(顺序) | 返回值类型 | 返回值解释 |
---|---|---|
n | int | |
err | error |