Go基础_1_63 bufio
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
/*
bufio:高效io读写
buffer缓存
io:input/output
将io包下的Reader,Write对象进行包装,带缓存的包装,提高读写的效率
ReadBytes()
ReadString()
ReadLine()
*/
fileName := "D:\\Go\\web2\\aa.txt"
file, err := os.Open(fileName)
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
// 创建Reader对象
b1 := bufio.NewReader(file)
// 1.Read(),高效读取
// p := make([]byte, 1024)
// n1, err := b1.Read(p)
// fmt.Println(n1)
// fmt.Println(string(p[:n1]))
// 2.ReadLine()
// data, flag, err := b1.ReadLine()
// fmt.Println(flag) // false
// fmt.Println(err) // <nil>
// fmt.Println(data) // [97 98 99 100 ...
// fmt.Println(string(data)) // abcdefghijklmnopqrstuvwxyzabab
// 3.ReadString()
// s1, err := b1.ReadString('\n')
// fmt.Println(err)
// fmt.Println(s1) // aaa
// s1, err = b1.ReadString('\n')
// fmt.Println(err)
// fmt.Println(s1) // bbb
// s1, err = b1.ReadString('\n')
// fmt.Println(err)
// fmt.Println(s1) // ccc
// for {
// s1, err := b1.ReadString('\n')
// if err == io.EOF {
// fmt.Println("读取完毕。。")
// break
// }
// fmt.Println(s1) // ddd
// }
//4.ReadBytes()
data, err := b1.ReadBytes('\n')
fmt.Println(err)
fmt.Println(string(data)) // aaa
// Scanner
// s2 := ""
// fmt.Scanln(&s2) // 此时需要用户输入
// fmt.Println(s2)
b2 := bufio.NewReader(os.Stdin) // 此时需要用户输入
s2, _ := b2.ReadString('\n') // 遇到换行停止接收用户输入
fmt.Println(s2)
}