0
点赞
收藏
分享

微信扫一扫

go语言黑帽子学习3

无愠色 2022-05-01 阅读 94
golang安全

代码清单2-9 reader和writer演示

package main

import (

    "fmt"

    "log"

    "os"

)

type FooReader struct{}

func (fooReader *FooReader) Read(b []byte) (int, error) {

    fmt.Print("in >")

    return os.Stdin.Read(b)

}

type FooWriter struct{}

func (fooWriter *FooWriter) Write(b []byte) (int, error) {

    fmt.Print("out >")

    return os.Stdout.Write(b)

}

func main() {

    var (

        reader FooReader

        writer FooWriter

    )

    input := make([]byte, 4096)

    s, err := reader.Read(input)

    if err != nil {

        log.Fatalln("Unable to read data")

    }

    fmt.Printf("Read %d bytes from stdin\n", s)

    s, err = writer.Write(input)

    if err != nil {

        log.Fatalln("Unable to write data")

    }

    fmt.Printf("Wrote %d bytes to stdout\n", s)

}

使用io.Copy

import "io"

func main() {

    var(

        reader FooReader

        writer FooWriter

    )

    if _,err := io.Copy(&writer,&reader);err != nil {

        log.Fatalln("Unable to read/write data")

    }

}

举报

相关推荐

0 条评论