存储或读取数据的文件访问是一种非常常见的操作。本文展示了如何使用标准库按名称和路径打开文件。
按名称打开文件
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)来设置。