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 }