Go之文件操作(读 写) 的几种方式

文件读实现示例

func ReadFileByRead(filename string){
	file,err := os.Open(filename)
	if err !=nil{
		fmt.Println("open file failed err :",err)
		return
	}
	defer file.Close()
	var tmp =make([]byte,128)
	n,err := file.Read(tmp)
	if err == io.EOF{
		fmt.Println("文件读完了")
		return
	}
	if err !=nil{
		fmt.Println("read file failed err :",err)
		return
	}
	fmt.Println(string(tmp[:n]))
}

func ReadFileByBufio(filename string)  {
	file,err := os.Open(filename)
	if err !=nil{
		fmt.Println("open file failed err :",err)
		return
	}
	defer file.Close()
	reader := bufio.NewReader(file)
	for{
		line,err := reader.ReadString('\n')
		if err == io.EOF{
			if len(line) !=0{
				fmt.Println(line)
			}
			fmt.Println("文件读完了")
			break
		}
		if err !=nil{
			fmt.Println("read file failed err:",err)
			return
		}
		line = strings.TrimSuffix(line,"\n")
		fmt.Println(line)
	}

}


func ReadFileByIoutil(filename string){
	content,err := ioutil.ReadFile(filename)
	if err !=nil{
		fmt.Println("read file failed err :",err)
		return
	}
	fmt.Println(string(content))

}

  

 

写文件示例

package main

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

//文件写操作

func writeFile(filename string)  {
	file,err := os.OpenFile(filename,os.O_CREATE|os.O_TRUNC|os.O_WRONLY,0666)
	if err !=nil{
		fmt.Println("open file failed err :",err)
		return
	}
	defer file.Close()
	str := "山河壮丽\n"
	file.Write([]byte(str))
	file.WriteString("中国你好\n")
}

func writeFileByBufio(filename string)  {
	file,err := os.OpenFile(filename,os.O_CREATE|os.O_TRUNC|os.O_WRONLY,0666)
	if err !=nil{
		fmt.Println("open file failed err :",err)
		return
	}
	defer file.Close()
	writer := bufio.NewWriter(file)
	str := "中国你好\n"
	for i :=0;i<10;i++{
		writer.WriteString(str)
	}
	writer.Flush()
}

func writeFileByIo(filename string)  {
	str := "test"
	err := ioutil.WriteFile(filename,[]byte(str),0666)
	if err != nil {
		fmt.Println("write file failed, err:", err)
		return
	}
}

func main() {
	files := "./demo.txt"
	//writeFile(files)
	//writeFileByBufio(files)
	writeFileByIo(files)
}

  

posted @ 2021-01-22 12:43  pebblecome  阅读(126)  评论(0)    收藏  举报