go读取文件内容
//一次读取整个文件 func ReadFile(path string) { //打开文件 f, err := os.Open(path) if err != nil { fmt.Println("err = ", err) return } //关闭文件 defer f.Close() buf := make([]byte, 1024*2) //2k大小 //n代表从文件读取内容的长度 n, err1 := f.Read(buf) if err1 != nil && err1 != io.EOF { //文件出错,同时没有到结尾 fmt.Println("err1 = ", err1) return } fmt.Println("buf = ", string(buf[:n])) } //每次读取一行 func ReadFileLine(path string) { //打开文件 f, err := os.Open(path) if err != nil { fmt.Println("err = ", err) return } //关闭文件 defer f.Close() //新建一个缓冲区,把内容先放在缓冲区 r := bufio.NewReader(f) str := "" for { //遇到'\n'结束读取, 但是'\n'也读取进入 buf, err := r.ReadBytes('\n') if err != nil { if err == io.EOF { //文件已经结束 break } fmt.Println("err = ", err) } str += string(buf) } fmt.Printf("%s", str) } func main() { path := "./demo.txt" //ReadFile(path) ReadFileLine(path) }