1. 程式人生 > >golang 檔案基本操作

golang 檔案基本操作

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

//寫入檔案
func WriteFile(path string) {
	//新建檔案
	f, err := os.Create(path)
	if err != nil {
		fmt.Println("err=", err)
		return
	}
	//使用完畢需要關閉檔案
	defer f.Close()
	for i := 0; i < 10; i++ {
		f.WriteString(fmt.Sprintf("i=%d\n", i))
	}
}

//讀取檔案
func ReadFile(path string) {
	//開啟檔案
	f, err := os.Open(path)
	if err != nil {
		fmt.Println("err=", err)
		return
	}

	//關閉檔案
	defer f.Close()

	buf := make([]byte, 1024)

	if n, err1 := f.Read(buf); err1 != nil && err1 != io.EOF {
		fmt.Println("err1=", err1)
		return
	} else {
		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)
	for {
		if buf, err := r.ReadBytes('\n'); err != nil {
			if err == io.EOF {
				break
			}
		} else {
			fmt.Println(string(buf))
		}
	}
}

func main() {
	path := "./demo.txt"
	WriteFile(path)
	ReadFile(path)
	ReadFileLine(path)
}