我正在使用bufio.Scanner
,我不确定是否应该给它一个由bufio.Reader
包裹的读者。
即,f
是os.File
,我应该:
scanner := bufio.NewScanner(f)
或
scanner := bufio.NewScanner(bufio.NewReader(f))
答案 0 :(得分:2)
从the scan.go
source看起来你不需要传递*bufio.Reader
:它有自己的缓冲区,默认为bufio.Reader
的缓冲区。
// NewScanner returns a new Scanner to read from r.
// The split function defaults to ScanLines.
func NewScanner(r io.Reader) *Scanner {
return &Scanner{
r: r,
split: ScanLines,
maxTokenSize: MaxScanTokenSize,
buf: make([]byte, 4096), // Plausible starting size; needn't be large.
}
}