1 package main 2 3 import ( 4 "bufio" 5 "fmt" 6 "os" 7 ) 8 9 func main() { 10 /* 11 bufio:高效io读写 12 buffer缓存 13 io:input/output 14 15 将io包下的Reader,Write对象进行包装,带缓存的包装,提高读写的效率 16 17 ReadBytes() 18 ReadString() 19 ReadLine() 20 */ 21 22 fileName := "D:\\Go\\web2\\aa.txt" 23 file, err := os.Open(fileName) 24 if err != nil { 25 fmt.Println(err) 26 return 27 } 28 defer file.Close() 29 30 // 创建Reader对象 31 b1 := bufio.NewReader(file) 32 33 // 1.Read(),高效读取 34 // p := make([]byte, 1024) 35 // n1, err := b1.Read(p) 36 // fmt.Println(n1) 37 // fmt.Println(string(p[:n1])) 38 39 // 2.ReadLine() 40 // data, flag, err := b1.ReadLine() 41 // fmt.Println(flag) // false 42 // fmt.Println(err) // <nil> 43 // fmt.Println(data) // [97 98 99 100 ... 44 // fmt.Println(string(data)) // abcdefghijklmnopqrstuvwxyzabab 45 46 // 3.ReadString() 47 // s1, err := b1.ReadString('\n') 48 // fmt.Println(err) 49 // fmt.Println(s1) // aaa 50 51 // s1, err = b1.ReadString('\n') 52 // fmt.Println(err) 53 // fmt.Println(s1) // bbb 54 55 // s1, err = b1.ReadString('\n') 56 // fmt.Println(err) 57 // fmt.Println(s1) // ccc 58 59 // for { 60 // s1, err := b1.ReadString('\n') 61 // if err == io.EOF { 62 // fmt.Println("读取完毕。。") 63 // break 64 // } 65 // fmt.Println(s1) // ddd 66 // } 67 68 //4.ReadBytes() 69 data, err := b1.ReadBytes('\n') 70 fmt.Println(err) 71 fmt.Println(string(data)) // aaa 72 73 // Scanner 74 // s2 := "" 75 // fmt.Scanln(&s2) // 此时需要用户输入 76 // fmt.Println(s2) 77 78 b2 := bufio.NewReader(os.Stdin) // 此时需要用户输入 79 s2, _ := b2.ReadString('\n') // 遇到换行停止接收用户输入 80 fmt.Println(s2) 81 82 }