V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
bigpigeon

go 有好用的 io 库吗

  •  
  •   bigpigeon · Apr 14, 2021 · 3011 views
    This topic created in 1842 days ago, the information mentioned may be changed or developed.

    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 replies    2021-04-15 10:27:50 +08:00
    SingeeKing
        1
    SingeeKing  
    PRO
       Apr 14, 2021
    第一个需求 Go 自带的 bufio 就可以,我也封装了一个 https://github.com/ImSingee/sio/blob/master/reader.go
    Mohanson
        2
    Mohanson  
       Apr 14, 2021
    第二个需求正解是用 io.TeeReader()
    guonaihong
        3
    guonaihong  
       Apr 14, 2021
    楼上两位已经把别人要回答的都回答过了。
    killerirving
        4
    killerirving  
       Apr 15, 2021
    有需求先搜索
    bigpigeon
        5
    bigpigeon  
    OP
       Apr 15, 2021
    @SingeeKing bufio 只能缓存 Reader 内容但不能,seek 到 Reader 头的功能
    bigpigeon
        6
    bigpigeon  
    OP
       Apr 15, 2021
    @Mohanson 这个用来做 HashSum 不错
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2673 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 12:04 · PVG 20:04 · LAX 05:04 · JFK 08:04
    ♥ Do have faith in what you're doing.