Go language bytes.buffer write related operations

// MyBuffer project main.go
package main

import (
	"bytes"
	"fmt"
	"os"
)

func main() {
	buf1 := bytes.NewBuffer([]byte{'H', 'E', 'L', 'L', 'O'})
	buf2 := bytes.NewBuffer([]byte("hello"))
	buf3 := bytes.NewBufferString("world!")

	fmt.Println(buf1.String())
	fmt.Println(buf2.String())
	fmt.Println(buf3.String())

	s := []byte("WORLD!")
	n, err := buf1.Write(s)
	if err == nil {
		fmt.Println("n = ", n)
		fmt.Println("buf1 = ", buf1.String())
	} else {
		fmt.Println(err.Error())
	}

	n, err = buf3.WriteString(" plleh")
	if err == nil {
		fmt.Println("n = ", n)
		fmt.Println("buf3 = ", buf3.String())
	}

	var t byte = '?'
	err = buf2.WriteByte(t)
	if err == nil {
		fmt.Println("buf2 = ", buf2.String())
	} else {
		fmt.Println("err = ", err.Error())
	}

	r := []rune("中国人")
	n, err = buf2.WriteRune(r[0])
	if err == nil {
		fmt.Println("buf2 = ", buf2.String())
		fmt.Println("buf2.len = ", buf2.Len())
	} else {
		fmt.Println("err = ", err.Error())
	}

	file, _ := os.Create("out.txt")
	defer file.Close()

	buf2.WriteTo(file)

	buf1.WriteTo(os.Stdout)
	buf3.WriteTo(os.Stderr)
}

output:

C:/Go/bin/go.exe build -i [D:/golang/src/MyBuffer]
成功: 进程退出代码 0.
D:/golang/src/MyBuffer/MyBuffer.exe  [D:/golang/src/MyBuffer]
HELLO
hello
world!
n =  6
buf1 =  HELLOWORLD!
n =  6
buf3 =  world! plleh
buf2 =  hello?
buf2 =  hello?中
buf2.len =  9
HELLOWORLD!world! plleh成功: 进程退出代码 0.

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325143196&siteId=291194637