go语言基础| 青训营 读有感 基础不好 读了一些文章 并一一操作 要敲代码上实战才能掌握好知识
1、文件读操作
首先介绍一个Go语言的工具包 os,文件的一般操作工具方法,这里面都已提供。
- 创建新文件;
- 获取文件资源的相对路径和绝对路径;
- 重命名文件或文件夹;
- 删除文件或文件夹
file类是在os包中的,封装了底层的文件描述符和相关信息,同时封装了Read和Write的实现。
创建文件
f, err := os.Create("gotest.txt")
fmt.Println(f) // 打印文件指针
f.Close() // 打开的资源不使用时必须关闭
调用Create()创建文件时:
- 若文件不存在,则创建空白文件
- 若文件存在,则清空文件内容
- Create()创建的文件任何人都可以读写
文件操作权限
Go语言中 文件操作权限设置。不需要创建新文件时可以将其设定为0。针对于权限,go语言设定了很多的常量,但是习惯上也可以直接使用数字,如0666(具体含义和Unix系统的一致)。
linux 下有2种文件权限表示方式,即“符号表示”和“八进制表示”。
(1)符号表示方式: type(-) owner(---) group(---) others(---)
文件的权限是这样子分配的 读 写 可执行 分别对应的是 r w x
如果没有那一个权限,用 - 代替(-文件 d目录 |连接符号) 例如:-rwxr-xr-x
(2)八进制表示方式:
- r ——> 004
- w ——> 002
- x ——> 001
-——> 000
打开文件,写入内容
打开文件的两种方式:
-
Open():以只读权限打开文件,若文件不存在则会打开失败
-
OpenFile(p1, p2, p3):打开文件时,可以传入打开方式,该函数三个参数:
- p1:文件路径
- p2:文件打开模式,如
O_RDONLY,O_WRONGLY,还可通过管道符来指定文件,不存在时创建文件 - p3:文件创建时候的权限级别,在0-7之间,常用参数为6
f, err := os.OpenFile("gotest.txt", os.O_APPEND | os.O_RDWR, os.ModeAppend)
f.Close()
常用的文件打开模式:
O_RDONLY int = syscall.O_RDONLY // 只读
O_WRONGLY int = syscall.O_WRONGLY // 只写
O_RDWR int = syscall.O_RDWR // 读写
O_APPEND int = syscall.O_APPEND // 写操作时将数据追加到文件末尾
O_CREATE int = syscall.O_CREATE // 如果不存在则创建一个新文件
O_EXCL int = syscall.O_EXCL // 打开文件用于同步I/O
O_TRUNC int = syscall.O_TRUNC // 如果可能,打开时清空文件