github.com/code-reading/golang@v0.0.0-20220303082512-ba5bc0e589a3/coding/bufio/03-read-writer.go (about)

     1  package main
     2  
     3  import (
     4  	"bufio"
     5  	"bytes"
     6  	"fmt"
     7  )
     8  
     9  func main() {
    10  	b := bytes.NewBuffer(make([]byte, 0))
    11  	bw := bufio.NewWriter(b)
    12  	// s := strings.NewReader("123")
    13  	br := bufio.NewReader(b) // 将buffer 同时挂载到Writer 和Reader 上 通过NewReadWriter联通
    14  	rw := bufio.NewReadWriter(br, bw)
    15  	// p, isPrefix, _ := rw.ReadLine() 建议用ReadBytes("\n") 或者 ReadString("\n")代替
    16  	// fmt.Printf("line:%s, isPrefix:%v\n", p, isPrefix) //123
    17  	p, _ := rw.ReadString('\n')
    18  	fmt.Println(p)
    19  	rw.WriteString("asdf")
    20  	rw.Flush()
    21  	fmt.Println(b)
    22  	pp, _ := rw.ReadBytes('\n')
    23  	fmt.Println(string(pp)) // output asdf
    24  }