bufio.Scanner

Go圣经-学习笔记入门bufio.Scanner

只愿长相守 提交于 2019-11-29 07:58:10
上一篇 Go圣经-学习笔记入门bufio 下一篇 Go圣经-学习笔记入门bufio.Writer 由bufio.Reader引出的问题 由上篇文章《Go圣经-学习笔记入门bufio》,我们可以知道,bufio.Reader结构体中所有读取数据的方法,都包含了delim分隔符,这个用起来很不方便,所以Google对此在go1.1版本中加入了bufio.Scanner结构体,用于读取数据。 使用DEMO: func main(){ scanner:=bufio.NewScanner( strings.NewReader("ABCDEFG\nHIJKELM"), ) for scanner.Scan(){ fmt.Println(scanner.Text()) // scanner.Bytes() } } 理解:对于Scanner.Scan方法,相当于其他语言的迭代器iterator,并把迭代器指向的数据存放到新的缓冲区里。新的缓冲区(token)可以通过scanner.Text()或者scanner.Bytes()获取到。 Scanner.Scan方法默认是以换行符 \n ,作为分隔符。如果你想指定分隔符,Go语言提供了四种方法,ScanBytes( 返回单个字节作为一个 token ), ScanLines( 返回一行文本 ), ScanRunes( 返回单个 UTF-8 编码的