// 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.