V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
bigpigeon
V2EX  ›  Go 编程语言

go 有好用的 io 库吗

  •  
  •   bigpigeon · 2021-04-14 15:17:44 +08:00 · 2442 次点击
    这是一个创建于 1347 天前的主题,其中的信息可能已经有所发展或是发生改变。

    go 的 io.Reader/Writer 用来传输流文件非常方便

    但官方的 Reader/Writer 实现都太简单了,不够实用

    有没有一些好用的第三方库

    我想到几个比较实用的函数

    1. 带 Seeker 的 Reader

    就是 Reader 允许 Seeker 操作,可以返回头或者尾

    1. 一读变多读

    size 就是缓冲区大小,num 就是返回值返回的 reader 数

    e.g NewMultiReader(io.Reader, size, num int) []io.Reader

    6 条回复    2021-04-15 10:27:50 +08:00
    SingeeKing
        1
    SingeeKing  
       2021-04-14 15:46:46 +08:00
    第一个需求 Go 自带的 bufio 就可以,我也封装了一个 https://github.com/ImSingee/sio/blob/master/reader.go
    Mohanson
        2
    Mohanson  
       2021-04-14 17:58:14 +08:00
    第二个需求正解是用 io.TeeReader()
    guonaihong
        3
    guonaihong  
       2021-04-14 18:03:57 +08:00
    楼上两位已经把别人要回答的都回答过了。
    killerirving
        4
    killerirving  
       2021-04-15 09:10:04 +08:00
    有需求先搜索
    bigpigeon
        5
    bigpigeon  
    OP
       2021-04-15 10:27:14 +08:00
    @SingeeKing bufio 只能缓存 Reader 内容但不能,seek 到 Reader 头的功能
    bigpigeon
        6
    bigpigeon  
    OP
       2021-04-15 10:27:50 +08:00
    @Mohanson 这个用来做 HashSum 不错
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2571 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:43 · PVG 18:43 · LAX 02:43 · JFK 05:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.