bufio.NewReader(rd)
时间: 2024-04-24 16:27:55 浏览: 55
bufio.NewReader(rd) 是一个函数调用,它会将给定的 io.Reader 对象(rd) 封装成一个带有缓冲的读取器对象。这个读取器对象可以提供高效的读取操作,并且支持一些额外的方法,如 ReadString() 和 ReadBytes()。通过使用缓冲读取器,可以减少对底层 io.Reader 的直接读取次数,从而提高读取效率。
相关问题
bufio.NewReader 之后的 ReadString
`bufio.NewReader` 函数用于创建一个新的带缓冲读取器。它接受一个 `io.Reader` 类型的参数,并返回一个指向 `bufio.Reader` 类型的指针。
`(*bufio.Reader).ReadString` 方法接受一个参数 delim,它是字符的十进制编码值。该方法会读取该缓冲区中的数据直到第一次遇到 delim 或者缓冲区结束位置。返回值为读取到的字符串(去除delim字符) 和一个错误值。
bufio.NewReader 如何读取全部字符
使用 bufio.NewReader 可以读取 io.Reader 中的所有字符。可以通过以下方式读取全部字符:
```
r := bufio.NewReader(file)
// ReadString('\n') reads until the first occurrence of the separator.
// In this case, it reads the entire file because '\n' is not in the file.
content, _ := r.ReadString('\n')
```
也可以使用 ReadBytes 或者 ReadString,具体看需求。
```
content, _ := r.ReadBytes('\n')
content, _ := r.ReadString('\x00')
```
不过, 如果知道文件大小 可以使用ReadFull 取代, 效率更高
```
content := make([]byte, fileSize)
r.ReadFull(content)
```
阅读全文