• 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

  • 相关阅读:
    [BZOJ] 2054 疯狂的馒头
    day33(sql)
    day32(表单校验js和jquery表单校验)
    day31(正则表达式)
    day30(对象转json(java))
    day29(对象转xml(使用java))
    day28(ajax之js原生代码实现)
    day27(反射之内省机制实现BeanUtils)
    day27(反射之内省机制)
    day26(分页查询)
  • 原文地址:https://www.cnblogs.com/zhanghongfeng/p/15912989.html
Copyright © 2020-2023  润新知