go语言之文件读写

文件操作用到os库。涉及到几个函数分别为os.Open/os.Create/os.OpenFile/os.Remove/os.RemoveAll

(1) 当文件不存在的时候,使用os.Create

var buffer bytes.Buffer
buffer.WriteString("abcd")
file,error:=os.Create("test.txt")
defer file.Close()
if error !=nil{
fmt.Println("file create fail")
}
file.Write(buffer.Bytes()) //写入字节
file.WriteString("\n") //写入字符串
file.Write(buffer.Bytes())

(2) 当文件存在的时候,使用os.OpenFile

file,error:=os.OpenFile("test.txt",os.O_RDWR|os.O_CREATE,0766)
defer file.Close()
if error !=nil{
fmt.Println("file create fail")
}

其中读写权限的含义如下:

O_RDWR: 读写方式打开

O_CREATE:如果文件不存在,则先创建

O_WRONLY: 只写

O_RDONLY:只读

O_APPEND:追加方式写

O_SYNC:以同步I/O的方式打开

第三个参数:权限

0:没有任何权限

1:执行权限

2:写权限

3:写权限和执行权限

4:读权限

5:读权限和执行权限

6:读权限和写权限

7:读权限,写权限,执行权限

 

(3) 逐行读文件,需要使用到bufio库

br:=bufio.NewReader(file)
for{
a,_,c:=br.ReadLine()
if c == io.EOF{
break
}
fmt.Println(string(a))
}
(4) 删除文件
    del := os.Remove("./1.txt");
    if del != nil {
        fmt.Println(del);
    }
 (5) 删除指定path下的所有文件
    delDir := os.RemoveAll("./dir");
    if delDir != nil {
        fmt.Println(delDir);
    }

 

 



posted @ 2022-02-17 22:56  red_leaf_412  阅读(895)  评论(0编辑  收藏  举报