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);     }


Go