Go 语言 bytes.buffer read相关操作

// MyBuffer2 project main.go
package main

import (
	"bytes"
	"log"
	"os"
)

func main() {
	log.SetFlags(log.Lshortfile)
	buff := bytes.NewBufferString("123456789")
	log.Println("buff = ", buff.String())

	s := make([]byte, 4)
	n, _ := buff.Read(s)
	log.Println("buff = ", buff.String())
	log.Println("s = ", string(s))
	log.Println("n = ", n)

	n, _ = buff.Read(s)
	log.Println("buff = ", buff.String())
	log.Println("s = ", string(s))
	log.Println("n = ", n)

	n, _ = buff.Read(s)
	log.Println("buff = ", buff.String())
	log.Println("s = ", string(s))
	log.Println("n = ", n)

	buff.Reset()
	buff.WriteString("abcdefg")
	log.Println("buff = ", buff.String())

	b, _ := buff.ReadByte()
	log.Println("b = ", string(b))
	log.Println("buff = ", buff.String())

	b, _ = buff.ReadByte()
	log.Println("b = ", string(b))
	log.Println("buff = ", buff.String())

	bs, _ := buff.ReadBytes('e')
	log.Println("bs = ", string(bs))
	log.Println("buff = ", buff.String())

	buff.Reset()
	buff.WriteString("编译输出GO")
	r, l, _ := buff.ReadRune()
	log.Println("r = ", r, ", l = ", l, ", string(r) = ", string(r))

	buff.Reset()
	buff.WriteString("qwer")
	str, _ := buff.ReadString('?')
	log.Println("str = ", str)
	log.Println("buff = ", buff.String())

	buff.WriteString("qwer")
	str, _ = buff.ReadString('w')
	log.Println("str = ", str)
	log.Println("buff = ", buff.String())

	file, _ := os.Open("doc.go")
	buff.Reset()
	buff.ReadFrom(file)
	log.Println("doc.go = ", buff.String())

	buff.Reset()
	buff.WriteString("中国人")
	cbyte := buff.Bytes()
	log.Println("cbyte = ", cbyte)
}

输出:

C:/Go/bin/go.exe build -i [D:/golang/src/MyBuffer2]
成功: 进程退出代码 0.
D:/golang/src/MyBuffer2/MyBuffer2.exe  [D:/golang/src/MyBuffer2]
main.go:13: buff =  123456789
main.go:17: buff =  56789
main.go:18: s =  1234
main.go:19: n =  4
main.go:22: buff =  9
main.go:23: s =  5678
main.go:24: n =  4
main.go:27: buff =  
main.go:28: s =  9678
main.go:29: n =  1
main.go:33: buff =  abcdefg
main.go:36: b =  a
main.go:37: buff =  bcdefg
main.go:40: b =  b
main.go:41: buff =  cdefg
main.go:44: bs =  cde
main.go:45: buff =  fg
main.go:50: r =  32534 , l =  3 , string(r) =  编
main.go:55: str =  qwer
main.go:56: buff =  
main.go:60: str =  qw
main.go:61: buff =  er
main.go:66: doc.go =  // MyBuffer2 project doc.go

/*
MyBuffer2 document
*/
package main

main.go:71: cbyte =  [228 184 173 229 155 189 228 186 186]
成功: 进程退出代码 0.

 

转载于:https://my.oschina.net/tsh/blog/1619738

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值