golang文件读写方式总结

咱就是说啥呢,不是夸你们python呢,你们python文件操作确实比golang有点素质

三个方法直接写一起了,咱就是说啥呢,就是说啥呢,还得ioutil.read,其他的都是地中之地

package main
 
import (
	"bufio"
	"fmt"
	"io"
	"io/ioutil"
	"os"
)
 
func readFromFile1() {
	//只读方式打开当前目录main.go文件
	file, err := os.Open("./file")
	if err != nil {
		fmt.Println("open file failed", err)
		return
	}
	defer file.Close()
	var tmp = make([]byte, 128)
	for {
		n, err := file.Read(tmp[:])
		if err == io.EOF {
			fmt.Println("文件读完了")
			return
		}
		if err != nil {
			fmt.Println("read file failed,err:", err)
			return
		}
		fmt.Printf("读取了%d字节数据\n", n)
		fmt.Println(string(tmp[:n]))
		if n < 128 {
			return
		}
	}
}
 
//利用bufio这个包读文件
func readFromBufio() {
	file, err := os.Open("./file")
	if err != nil {
		fmt.Println("open file failed", err)
		return
	}
	defer file.Close()
	reader := bufio.NewReader(file)
	for {
		line, err := reader.ReadString('\n')
		if err == io.EOF {
			return
		}
		if err != nil {
			fmt.Printf("read line files,err:%v", err)
		}
		fmt.Print(line)
	}
}
 
//利用ioutil读取整个文件
func readFromUntil() {
	ret, err := ioutil.ReadFile("./file")
	if err != nil {
		fmt.Printf("read ret failed,err:%v", err)
		return
	}
	fmt.Println(string(ret))
}
func main() {
	readFromFile1()
	readFromBufio()
	readFromUntil()
}
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情