Golang中如何实现数据流传输?代码举例讲解

在Golang中,可以使用io包实现数据流的传输。代码示例:

go
// 数据流读取器
type Reader struct{}

func (r *Reader) Read(p []byte) (n int, err error) {
    // 模拟生成数据
    data := []byte("Hello World!")
    n = copy(p, data)
    return 
}

// 数据流写入器
type Writer struct{}

func (w *Writer) Write(p []byte) (n int, err error) {
    // 接收数据并打印
    fmt.Println(string(p))
    return len(p), nil 
}

func main() {
    // 创建读写器
    reader := new(Reader)
    writer := new(Writer)

    // 连接读写器
    io.Copy(writer, reader) 
}

我们定义了Reader和Writer,Reader会生成数据流,Writer会接受数据流并打印。通过调用io.Copy(writer, reader)我们将二者连接起来,实现了数据流的传输和处理。
这个示例极简地演示了如何在Golang中实现数据流的读取、传输和写入。