Go语言 - 文件操作

Go语言文件操作涉及包有osio这两个。

使用字节操作读文件:

func readByteFromFile() {
	file, err := os.Open("go.mod")
	if err != nil {
		fmt.Printf("err >> %v\n", err)
	}
	defer file.Close()

	var tmp = make([]byte, 128)
	for {
		len, err := file.Read(tmp[:])
		if err == io.EOF {
			break
		}
		if err != nil {
			fmt.Printf("err >> %v\n", err)
		}
		fmt.Print(string(tmp[:len]))
	}
}

使用字符操作读取文件:

func readBuffFromFile() {
	file, err := os.Open("go.mod")
	if err != nil {
		fmt.Printf("err >> %v\n", err)
	}
	defer file.Close()

	reader := bufio.NewReader(file)
	for {
		str, err := reader.ReadString('\n')
		if err == io.EOF {
			break
		}
		if err != nil {
			fmt.Printf("err >> %v\n", err)
		}
		fmt.Print(str)
	}
}

使用ioutil读取文件:

func readFileUseUtil() {
	str, err := ioutil.ReadFile("go.mod")
	if err != nil {
		fmt.Printf("err >> %v\n", err)
	} else {
		fmt.Println(string(str))
	}
}

使用File写文件:

func writeStringToFile(content string) (n int, err error) {
	file, err := os.OpenFile("demo.txt", os.O_WRONLY|os.O_CREATE, 0666)
	if err != nil {
		fmt.Printf("err >> %v\n", err)
	}
	defer file.Close()
	return file.WriteString(content)
}

// 调用方式:
n, err := writeStringToFile("Hi Gooooo!")
if err != nil {
	fmt.Printf("err >> %v\n", err)
}
fmt.Printf("写入长度n=%d\n", n)
上一篇:golang jwt验证


下一篇:保存图片到相册