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

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM