原型(prototype)是:
(reader *Reader) ReadLineWithMaxLength (delim byte, max int) (line []byte, err error)
当找到 delim 或达到 max 长度时,它返回一行。
最佳答案
我认为没有直接的功能,但使用 io.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
}
关于go - 是否有 API 可以从阅读器读取一行,但限制返回行的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32676034/