• go语言之byte buffer


    bytes.buffer是一个缓冲byte类型的缓冲器存放着都是byte. 是一个变长的 buffer,具有 Read 和Write 方法。 Buffer 的 零值 是一个 空的 buffer,但是可以使用) 
    Buffer 就像一个集装箱容器,可以存东西,取东西
    var b bytes.Buffer
    b1:=new(bytes.Buffer)
    #创建byte buffer的两种方法
    tmp:=make([]byte,10)
    b.Write([]byte("hello"))
    fmt.Println("before:b=",b.String())
    fmt.Println("Read function test\n")
    b.Read(tmp) //读byte buffer中的数据到tmp(字节数组中),一直读完为止,读完后b里面就是空数据
    fmt.Println("tmp=:",string(tmp))
    fmt.Println("after:b=",b.String())

    b.Write([]byte("hello"))
    fmt.Println("Readbyte function test\n")
    ret,_:=b.ReadByte() //读byte buffer中的第一个字节,读完后b中第一个字节没有
    fmt.Println("ret=%s",string(ret))
    fmt.Println("after:b=",b.String())

    fmt.Println("Readbytes function test\n")
    b1.Write([]byte("hello"))
    fmt.Println("before:b1=",b1.String())
    var delim byte='l'
    ret1,_:=b1.ReadBytes(delim) //一直读到分隔符的字节
    fmt.Println("ret=%s",string(ret1))


    fmt.Println("Reset and ReadString begin")
    b1.Reset() //清空byte buffer
    b1.Write([]byte("hello"))
    ret2,_:=b1.ReadString(delim)
    fmt.Println("ret=%s",string(ret2))

    fmt.Println("Reset and WriteString begin")
    b1.Reset()
    b1.WriteString(string("hello")) //写入字符串
    fmt.Println("after:b1=",b1.String())

    执行结果

    before:b= hello
    Read function test

    tmp=: hello
    after:b=
    Readbyte function test

    ret=%s h
    after:b= ello
    Readbytes function test

    before:b1= hello
    ret=%s hel
    Reset and ReadString begin
    ret=%s hel
    Reset and WriteString begin
    after:b1= hello

  • 相关阅读:
    HDUOJ---1863畅通工程
    HDUOJ---1879 继续畅通工程
    HDUOJ---1102Constructing Roads
    HDUOJ---1102Constructing Roads
    hdu--DFS
    poj1611---The Suspects
    nyoj-----幸运三角形
    HDUOJ --2523
    HDUOJ---1195Open the Lock
    HDUOJ----2952Counting Sheep
  • 原文地址:https://www.cnblogs.com/zhanghongfeng/p/15912989.html
Copyright © 2020-2023  润新知