猿问

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

原型将是:

 (reader *Reader) ReadLineWithMaxLength (delim byte, max int) (line []byte, err error)

当找到delim或达到最大长度时,它会返回一行。


慕丝7291255
浏览 186回答 1
1回答

素胚勾勒不出你

我不认为有直接的功能,但实现一个 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}
随时随地看视频慕课网APP

相关分类

Go
我要回答