os.Create 创建文件
根据提供的文件名创建新的文件并返回一个默认权限是 0666 的文件对象(即可读写对象)。
func Create(name string) (file *File, err Error)
package mainimport ("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 mainimport ("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 mainimport ("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")}
