文件操作用到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);
}
