95_Go基础_1_63 bufio

 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 }