当前位置: 首页 > 工具软件 > Go Buffer > 使用案例 >

golang buffer的使用

勾海超
2023-12-01
// test14 project main.go
package main

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

func main() {
	/*
		s := []byte(" world")
		buf := bytes.NewBufferString("hello")
		fmt.Println(buf.String()) //buf转整形
		buf.Write(s)              //将s这个slice写到buf的尾部
		fmt.Println(buf.String())
		buf.WriteString(s) //将s这个string 写到buffer的尾部
	*/

	/*
		var s rune = '好'
		buf := bytes.NewBufferString("hello")
		fmt.Println(buf.String())
		buf.WriteRune(s)

		fmt.Println(buf.String())
	*/

	/*
		file, _ := os.Create("chenghuan.txt")
		buf := bytes.NewBufferString("水水水水谁谁谁水水水水")
		buf.WriteTo(file)
		fmt.Fprintf(file, buf.String())
	*/

	/*
		s1 := []byte("hello")
		buff := bytes.NewBuffer(s1)
		s2 := []byte(" world")
		buff.Write(s2)
		fmt.Println(buff.String())

		s3 := make([]byte, 3)
		buff.Read(s3)
		fmt.Println(buff.String())
		fmt.Println(string(s3))
		buff.Read(s3)
		fmt.Println(buff.String())
		fmt.Println(string(s3))
	*/
	/*
		buf := bytes.NewBufferString("hello")
		b, _ := buf.ReadByte()    //读取第一个byte,赋值给b
		fmt.Println(buf.String()) //打印ello,缓冲器头部第一个h被拿掉
		fmt.Println(string(b))    //打印h
	*/
	//ReadBytes和ReadByte根本就不是一回事,ReadBytes需要一个byte作为分隔符,读的时候从缓冲器里找第一个出现的分隔符(delim),找到后,把从缓冲器头部开始到分隔符之间的所有byte进行返回,作为byte类型的slice,返回后,缓冲器也会空掉一部分
	/*var d byte = "e"
	buf := bytes.NewBufferString("hello")
	fmt.Println(buf.String())
	b, _ := buf.ReadBytes(d)  //读到分隔符,并返回给b
	fmt.Println(buf.String()) //打印llo,缓冲器被取走一些数据
	fmt.Println(string(b))    //打印he
	*/
	/*file, _ := os.Open("chenghuan.txt")
	buff := bytes.NewBufferString("hello ")
	buff.ReadFrom(file) //将text里面的内容追加到缓冲器的尾部
	fmt.Println(buff.String())*/

	buf := bytes.NewBufferString("hello")
	fmt.Println(buf.String())
	b := buf.Next(2) //重头开始,取两个
	fmt.Println(buf.String())
	fmt.Println(string(b))
}


转自:https://my.oschina.net/u/943306/blog/127981

 类似资料: