1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
fp := "D:/go.txt"
/*
第三个参数表示文件权限
第 1 位在权限中总是为 0
第 2 位为 0 表示文件不可以被读, 为 1 表示可以被读
第 3 位为 0 表示文件不可以被写, 为 1 表示可以被写
第 4 位为 0 表示文件不可以被执行, 为 1 表示可以被执行
整理如下:
0(0000): 不可读写,不能被执行
1(0001): 不可读写,能被执行
2(0010): 可写不可读,不能被执行
3(0011): 可写不可读,能被执行
4(0100): 可读不可写,不能被执行
5(0101): 可读不可写,能被执行
6(0110): 可读写,不能执行
7(0111): 可读写,可执行
0666:
第一个 0 表示这个数是 八进制
第一个 6 表示文件拥有者有读写权限,但没有执行权限
第二个 6 表示文件拥有者同组用户有读写权限,但没有执行权限
第三个 6 表示其它用户有读写权限,但没有执行权限
*/
//第二个参数表示文件内容追加
//第三个参数表示创建文件时文件权限
f, err := os.OpenFile(fp, os.O_APPEND, 0660)
defer f.Close()
if err != nil {
fmt.Println("文件不存在,创建文件")
f, _ = os.Create(fp)
}
/*
内容中识别特殊字符
\r\n 换行
\t 缩进
*/
/*
使用文件对象重写的Writer接口,参数是[]byte
*/
f.Write([]byte("使用Writer接口写数据\r\n"))
/*
使用stringWriter接口的方法,参数是字符串,使用更方便
*/
f.WriteString("写了\t一段\r\n内容123")
fmt.Println("程序执行结束")
|