bufio readline 问题,求大神

legendlzy · · 2156 次点击
下面是bufio.Reader的代码,buffer是先读取不定字节后再查找delimiter的,所以每次ReadString返回之后buffer里面很大可能是还有剩余数据的,ReadString放在循环里的做法肯定是有问题的 // fill reads a new chunk into the buffer. func (b *Reader) fill() { // Slide existing data to beginning. if b.r > 0 { copy(b.buf, b.buf[b.r:b.w]) b.w -= b.r b.r = 0 } if b.w >= len(b.buf) { panic("bufio: tried to fill full buffer") } // Read new data: try a limited number of times. for i := maxConsecutiveEmptyReads; i > 0; i-- { n, err := b.rd.Read(b.buf[b.w:]) if n < 0 { panic(errNegativeRead) } b.w += n if err != nil { b.err = err return } if n > 0 { return } } b.err = io.ErrNoProgress } https://github.com/golang/go/blob/master/src/bufio/bufio.go
#9
更多评论
改为 `ReadString('\n')` 试试
#1
我现在就是使用的readstring,然后出现了截断的问题,而且他是截断的前半,留下了一点点尾部
#2