Golang文件读取常用的三种方式

  • 走起
package main

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

func readFileByte(path string) {
	file, err := os.Open(path)
	if err != nil {
		fmt.Println(err)
	}
	defer func() {
		err := file.Close()
		if err != nil {
			fmt.Println(err)
		}
	}()
	//指定读的长度
	var tmp = make([]byte, 100)
	n, err := file.Read(tmp)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(string(tmp[:n]))

}

func readFileLine(path string) {
	fi, err := os.Open(path)
	if err != nil {
		fmt.Printf("Error: %s\n", err)
		return
	}
	defer func() {
		err := fi.Close()
		if err != nil {
			fmt.Println(err)
		}
	}()

	br := bufio.NewReader(fi)
	for {
		a, _, c := br.ReadLine()
		if c == io.EOF {
			break
		}
		fmt.Println(string(a))
	}
}

func readFileAll(path string) {
	fileObj, err := os.ReadFile(path)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(string(fileObj))
}


func main() {
	path := "yourpaht/xxxx.txt"
	// 指定字节读
	readFileByte(path)
	// 逐行读取文件
	readFileLine(path)
	// 全部读取
	readFileAll(path)
}

你可能感兴趣的:(Go,go,golang)