读取文件的三个方法

发布时间 2023-03-22 21:14:18作者: 小白学程
package main

import (
	"bufio"
	"fmt"
	"io"
	"io/ioutil"
	"os"
)

func dome01() {
	file, err := os.Open("E:\\GOGO\\GOE\\dome01\\main.go")
	if err != nil {
		fmt.Println("das", err)
		return
	}
	defer file.Close()
	//var tmp = make([]byte, 128)
	for {
		var tmp [128]byte
		//Read 只读
		n, errors := file.Read(tmp[:])
		if errors != nil {
			fmt.Println("为二", errors)
			return
		}
		fmt.Printf("读取了%d个字节", n)
		fmt.Println()
		fmt.Println(string(tmp[:n]))
		if n < 128 {
			return
		}

	}
}

// 利用bufio

func deme02() {

	fileObj, err := os.Open("E:\\GOGO\\GOE\\dome01\\main.go")
	if err != nil {
		fmt.Println("第一", err)
		return
	}
	defer fileObj.Close()
	reder := bufio.NewReader(fileObj)
	for {
		line, errorr := reder.ReadString('\n')
		if err == io.EOF {
			return
		}
		if errorr != nil {
			fmt.Printf("read err %d", errorr)
			return
		}
		fmt.Println(line)
	}

}
func dome03() {
	ret, err := ioutil.ReadFile("E:\\GOGO\\GOE\\dome01\\main.go")
	if err != nil {
		fmt.Printf("123123", err)
	}
	fmt.Println(string(ret))
}

func main() {
	dome03()
}