为了账号安全,请及时绑定邮箱和手机立即绑定

是否有 API 可以从阅读器读取一行,但限制返回行的长度?

是否有 API 可以从阅读器读取一行,但限制返回行的长度?

Go
慕丝7291255 2021-11-08 16:47:19
原型将是: (reader *Reader) ReadLineWithMaxLength (delim byte, max int) (line []byte, err error)当找到delim或达到最大长度时,它会返回一行。
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

我不认为有直接的功能,但实现一个 usingio.LimitReader很简单。


func ReadLimitedLine(r io.Reader, delim byte, max int64) ([]byte, error) {

    l, err := bufio.NewReader(io.LimitReader(r, max)).ReadBytes(delim)

    if err != nil && err != io.EOF {

        return nil, err

    }


    // ReadBytes includes the delimiter in return value

    return bytes.TrimSuffix(l, []byte{delim}), nil

}


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信