Golang io.MultiReader()的用法及示例
在Go语言中,io包提供了操作I/O基元的基本接口。它的主要工作是封装这些原语的正在进行的实现。Go语言中的 MultiReader() 函数用于返回一个“Reader”,该“Reader”是所有指定输入读取器的逻辑连接。然而,这些指定的读取器按照顺序读取。在所有指定的输入返回EOF即文件结束时,“Read”将返回EOF。此外,此函数在io包中定义。这里,您需要导入“io”包以使用这些函数。
语法:
func MultiReader(readers ...Reader) Reader
在这里,“readers”是指定的读取器数量。
返回值: 它返回一个“Reader”,该“Reader”是所有给定输入读取器的逻辑连接。如果任何指定的读取器返回非nil错误或非EOF错误,则“Read”将返回该错误。
下面的示例说明了上述方法的使用:
示例1:
// Golang程序演示了io.MultiReader()函数的用法
// 包含主程序
package main
// 导入fmt,io,strings,和os
import (
"fmt"
"io"
"os"
"strings"
)
// 调用主程序
func main() {
// 使用NewReader方法定义读取器
reader1 := strings.NewReader("Geeks\n")
reader2 := strings.NewReader("GfG\n")
reader3 := strings.NewReader("CS\n")
// 使用其参数调用MultiReader方法
r := io.MultiReader(reader1, reader2, reader3)
// 使用参数调用Copy方法
Reader,err := io.Copy(os.Stdout,r)
// 如果错误不为空,则引发异常
if err != nil {
panic(err)
}
// 输出
fmt.Printf("n:%v\n",Reader)
}
输出:
Geeks
GfG
CS
n: 13
在上面的示例中,使用Copy()方法以返回所有连接的读取器的结果,并使用字符串的NewReader()方法编写要读取的内容。
示例2:
// Golang程序演示了io.MultiReader()函数的用法
// 包含主程序
package main
// 导入fmt,io,strings,和os
import (
"fmt"
"io"
"os"
"strings"
)
// 调用主程序
func main() {
// 使用NewReader方法定义读取器
reader1 := strings.NewReader("104\n")
reader2 := strings.NewReader("33.3\n")
reader3 := strings.NewReader("703243242\n")
// 使用其参数调用MultiReader方法
r := io.MultiReader(reader1, reader2, reader3)
// 使用参数调用Copy方法
Reader,err := io.Copy(os.Stdout,r)
// 如果错误不为空,则引发异常
if err != nil {
panic(err)
}
// 输出
fmt.Printf("n: %v\n",Reader)
}
输出:
104
33.3
703243242
n: 19