os.Create 创建文件
根据提供的文件名创建新的文件并返回一个默认权限是 0666 的文件对象(即可读写对象)。
func Create(name string) (file *File, err Error)
package main
import (
"fmt"
"os"
)
func main() {
f, err := os.Create("C:/Users/Administrator/Downloads/test.txt")
if err != nil {
fmt.Println(err)
}
defer f.Close()
fmt.Println("create file successful")
}
os.Open 打开文件
以只读的方式打开名为 name 的文件,函数内部调用 OpenFile 函数。
func Open(name string) (file *File, err Error)
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
f, err := os.Open("C:/Users/Administrator/Downloads/test.txt")
if err != nil {
fmt.Println(err)
}
defer f.Close()
fmt.Println("open file successful")
}
os.OpenFile 打开或创建文件
打开或创建名为 name 的文件,并可设置打开方式和权限。
func OpenFile(name string, flag int, perm uint32) (file *File, err Error)
- name:文件的绝对/相对路径;
- flag:打开方式;
- O_RDONLY:只读;
- O_WRONLY:只写;
- O_RDWR:可读可写;
- O_APPEND:追加;
- O_CREATE:创建;
- perm:权限级别,由4位数字组成,如:0767
- 第1位数字:2表示设置了guid,4表示设置了suid,6表示同时设置了guid和suid;
- 第2位数字:用户权限级别;
- 第3位数字:用户组权限级别;
- 第4位数字:其它权限;
权限级别 | ||
---|---|---|
数字 | 二进制位 | 说明 |
0 | [ 0 0 0 ]、[ - - - ] | 没有任何权限 |
1 | [ 0 0 1 ]、[ - - x ] | 执行权限(如果文件是可执行文件) |
2 | [ 0 1 0 ]、[ - w - ] | 写权限 |
3 | [ 0 1 1 ]、[ - w x ] | 写权限和执行权限 |
4 | [ 1 0 0 ]、[ r - - ] | 读权限 |
5 | [ 1 0 1 ]、[ r - x ] | 读权限和执行权限 |
6 | [ 1 1 0 ]、[ r w - ] | 读权限和写权限 |
7 | [ 1 1 1 ]、[ r w x ] | 读、写和执行权限 |
package main
import (
"fmt"
"os"
)
func main() {
// 1.以可读可写的方式打开文件;
// 2.文件存在时打开,文件不存在时创建;
// 3.用户权限、所属组权限和其它权限均为可读、可写、可执行的最高权限
f, err := os.OpenFile(
"C:/Users/Administrator/Downloads/test.txt",
os.O_RDWR|os.O_CREATE,
0777)
if err != nil {
fmt.Println(err)
}
defer f.Close()
fmt.Println("open file successful")
}