go基础库之按名称打开文件

存储或读取数据的文件访问是一种非常常见的操作。本文展示了如何使用标准库按名称和路径打开文件。

按名称打开文件

Golang 版本

1.12.1

前言

存储或读取数据的文件访问是一种非常常见的操作。本文展示了如何使用标准库按名称和路径打开文件。

实现

创建tmp目录,在tmp目录中创建file.txt文件,并在文件内写入如下内容:

这是文件内容

创建文件openfile.go,代码如下:

package main

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

func main()  {
	f, err := os.Open("temp/file.txt")
	if err != nil {
		panic(err)
	}

	c, err := ioutil.ReadAll(f)
	if err != nil {
		panic(err)
	}

	fmt.Printf("### 文件内容 ###\n%s\n", string(c))
	f.Close()

	f, err = os.OpenFile("temp/test.txt", os.O_CREATE|os.O_RDWR,
		os.ModePerm)
	if err != nil {
		panic(err)
	}
	io.WriteString(f, "Test string")
	f.Close()
}
$ go run openfile.go
### 文件内容 ###
这是文件内容

原理

os包提供了一种打开文件的简单方法。Open函数以只读模式按路径打开文件。另一个函数OpenFile功能更强大,它可以使用文件的路径、标志和权限来打开文件。

标志常量在os包中定义,你可以使用二进制或操作符|组合它们。权限由os包常量(例如os.ModePerm)或者使用数字表示法,如0777(权限:-rwxrwxrwx)来设置。