O_RDONLY:以只读方式打开文件;
O_WRONLY:以只写方式打开文件;
O_RDWR:以读写方式打开文件;
O_APPEND:写入时将数据追加到文件;
O_CREATE:如果不存在新文件,则创建一个新文件;
O_EXCL:与O_CREATE一起使用,文件不能存在;
O_SYNC:为同步I/O打开;
O_TRUNC:打开时截断常规可写文件;
perm:文件权限,一般最高为0777。
package main
import (
"fmt"
"os"
)
func main() {
f, err := os.OpenFile("a.txt", os.O_RDWR|os.O_CREATE, 0777)
if err != nil {
panic(err)
}
fmt.Println(f.Name())
}
a.txt
文件打开之后,就可以从得到的文件对象中读取文件内容。我们在 a.txt 文件中输入 file test 字符串,来验证读取结果。
package main
import (
"fmt"
"os"
)
func main() {
f, err := os.OpenFile("a.txt", os.O_RDWR|os.O_CREATE, 0777)
if err != nil {
panic(err)
}
b := make([]byte, 10)
i, err := f.Read(b)
if err != nil {
panic(err)
}
fmt.Println(i)
fmt.Println(string(b))
}
5
11111
文件写入有两种模式,追加模式和覆写模式。如果在打开文件的时候加上了 O_APPEND 模式,就是追加,如果不加就是覆写。
package main
import (
"os"
)
func main() {
f1, err := os.OpenFile("a.txt", os.O_RDWR|os.O_CREATE, 0777)
if err != nil {
panic(err)
}
f1.WriteString("覆写字符")
f1.Close()
f2, err := os.OpenFile("b.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0777) //追加模式打开文件
if err != nil {
panic(err)
}
f2.WriteString("追加字符")
}
a.txt 覆写字符
b.txt 追加字符
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。