美文网首页
golang标准库bufio包

golang标准库bufio包

作者: 超鸽带你飞 | 来源:发表于2023-08-03 16:55 被阅读0次

1. bufio包原理

io操作本身的效率并不低,低的是频繁的访问本地磁盘的文件。所以bufio就提供了缓冲区(分配一块内存),读和写都先在缓冲区中,最后再读写文件,来降低访问本地磁盘的次数,从而提高效率。

    //reader
    s := strings.NewReader("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890")
    br := bufio.NewReader(s)
    p := make([]byte, 10)

    //writer
    b := bytes.NewBuffer(make([]byte, 0))
    bw := bufio.NewWriter(b)

    //读reader,写入writer
    for {
        n, err := br.Read(p)
        if err == io.EOF {
            break
        } else {
            fmt.Printf("string(p[0:n]): %v\n", string(p[0:n]))
            bw.Write(p[0:n])
        }
    }
    bw.Flush()
    fmt.Println(b.String())

    //或者
    //bw.ReadFrom(s)
    // bw.Flush() // ReadFrom无需使用Flush,其自己已经写入
    //fmt.Println(b) // Hello 世界!

相关文章

  • Golang标准库——bufio

    bufio bufio包实现了有缓冲的I/O。它包装一个io.Reader或io.Writer接口对象,创建另一个...

  • golang bufio包

  • golang中bufio包

    一、介绍go标准库中的bufio最近用golang写了一个处理文件的脚本,由于其中涉及到了文件读写,开始使用gol...

  • Golang学习 - bufio 包

    // bufio 包实现了带缓存的 I/O 操作 type Reader struct { ... } // Ne...

  • Go bufio

    bufio通过缓存来提高效率,缓存放在主存中。 Golang的bufio包实现了带缓存的I/O读写操作,用来帮助处...

  • golang 解决 TCP 粘包问题

    什么是 TCP 粘包问题以及为什么会产生 TCP 粘包,本文不加讨论。本文使用 golang 的 bufio.Sc...

  • Gin框架与《Web Development with Go》实

    golang的标准web开发 使用golang的标准库net/http包开发web应用是非常简单的。对于此部分内容...

  • go标准库:bufio

    Reader类 bufio.Reader包装了一个io.Reader对象,提供与io.Reader一致的接口,实现...

  • golang中bytes包

    golang标准库中提供了bytes包,该包几乎和strings包给string提供的功能,只不过bytes包对应...

  • 对golang标准库内容的一次简单总结

    到目前已经大致复习了2/5的标准库包内容,对标准库内容进行一次简单总结,golang标准库主要由压缩归档、缓冲、字...

网友评论

      本文标题:golang标准库bufio包

      本文链接:https://www.haomeiwen.com/subject/ubbmpdtx.html