github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/08_file/opfile/bufio_test.go (about)

     1  package opfile
     2  
     3  import (
     4  	"bufio"
     5  	"fmt"
     6  	"os"
     7  	"testing"
     8  )
     9  
    10  func TestBufioDemo(t *testing.T) {
    11  	bufioDemo()
    12  }
    13  func bufioDemo() {
    14  
    15  	/*
    16  		   bufio:高效io读写
    17  			   buffer缓存
    18  			   io:input/output
    19  
    20  		   将io包下的Reader,Write对象进行包装,带缓存的包装,提高读写的效率
    21  
    22  			   ReadBytes()
    23  			   ReadString()
    24  			   ReadLine()
    25  
    26  	*/
    27  
    28  	fileName := "aa.txt"
    29  	file, _ := os.Open(fileName) //看作是io包下的Reader,Write的实现
    30  	defer file.Close()
    31  	r1 := bufio.NewReader(file) //构建带缓存的Reader对象:bufio.Reader
    32  	fmt.Printf("%T\n", r1)
    33  	data, flag, err := r1.ReadLine()
    34  	fmt.Println(err)
    35  	fmt.Println(flag)
    36  	fmt.Println(data)
    37  	fmt.Println(string(data))
    38  
    39  	//s1, _ := r1.ReadString('\n')
    40  	//fmt.Println(s1)
    41  	//s1, _ = r1.ReadString('\n')
    42  	//fmt.Println(s1)
    43  	//s1, _ = r1.ReadString('\n')
    44  	//fmt.Println(s1)
    45  	//s1, _ = r1.ReadString('\n')
    46  	//fmt.Println(s1)
    47  	//
    48  	//for {
    49  	//	s1, err := r1.ReadString('\n')
    50  	//	if err == io.EOF {
    51  	//		fmt.Println("读取完毕。。")
    52  	//		break
    53  	//	}
    54  	//	fmt.Print(s1)
    55  	//}
    56  
    57  	data, _ = r1.ReadBytes('\n')
    58  	fmt.Println(string(data))
    59  
    60  	s2 := ""
    61  	fmt.Scanln(&s2)
    62  	fmt.Println(s2)
    63  
    64  	r2 := bufio.NewReader(os.Stdin)
    65  	s2, _ = r2.ReadString('\n')
    66  	fmt.Println(s2)
    67  
    68  }