Golang io.MultiReader()的用法及示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程