go 对文件操作
-
read文件
package main import ( "fmt" "io" "os" ) func main() { file, err := os.Open("password") if err != nil { return } defer file.Close() ctx := make([]byte, 8) for { n, err := file.Read(ctx) if err == io.EOF { break } fmt.Println(n, err, string(ctx[:n]), len(string(ctx[:n]))) } } -
write文件
ackage main import ( "os" ) func main() { file, err := os.Create("name.txt") if err != nil { return } defer file.Close() file.Write([]byte("abcqweqw")) file.Write([]byte("abcqweqw")) file.Write([]byte("abcqweqw")) file.Write([]byte("abcqweqw")) } -
Openfile文件
package main import "os" func main() { file, err := os.OpenFile("name.txt", os.O_CREATE|os.O_RDWR|os.O_TRUNC, os.ModePerm) if err != nil { return } file.Write([]byte("asdfdfd")) }-
Flag
-
os.O_CREATE|os.O_APPEND| os.O_CREATE|os.O_TRUNC|os.O_WRONLY
os.O_RDONLY // 只读 os.O_WRONLY // 只写 os.O_RDWR // 读写 os.O_APPEND // 追加(Append) os.O_CREATE // 如果文件不存在则先创建 os.O_TRUNC // 文件打开时裁剪文件 os.O_EXCL // 和O_CREATE一起使用,文件不能存在 os.O_SYNC // 以同步I/O的方式打开 -
第三个参数:权限(rwx:0-7)
0:没有任何权限 1:执行权限 2:写权限 3:写权限和执行权限 4:读权限 5:读权限和执行权限 6:读权限和写权限 7:读权限,写权限,执行权限
-
-
seek 偏移
seek(offset int, whence int),表示设置光标的位置
offset int,设置多少个字节
whence int,从哪开始
0,距离文件开头
1,当前的位置
2,距离文件末尾
*/package main import ( "fmt" "io" "os" ) func main() { file, err := os.OpenFile("password.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, os.ModePerm) if err != nil { return } defer file.Close() ctx := make([]byte, 3) file.Seek(0, 0) n, err := file.Read(ctx) if err == io.EOF { return } fmt.Println(n, string(ctx)) //3 123 file.Seek(0, 1) n, err = file.Read(ctx) fmt.Println(n, string(ctx)) //3 456 file.Seek(0, 1) //789 n, err = file.Read(ctx) fmt.Println(n, string(ctx)) // }
-

浙公网安备 33010602011771号