Golang寫文件的坑


Golang寫文件一般使用os.OpenFile返回文件指針的Write方法或者WriteString或者WriteAt方法,但是在使用這三個方法時候經常會遇到寫入的內容和實際內容有出入,因為這幾個函數采用的不是清空覆蓋的方式,有時字符串或數組長度和文件內容不一致的時候只覆蓋了一部分,這就需要在調用os.OpenFile的時候加上os.O_TRUNC如下:

f, err := os.OpenFile(dst, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, os.ModePerm)

寫文件工具函數封裝如下:

func WriteToFile(path string, content string) error {
   f, err := os.OpenFile(path, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644)
   if err != nil {
      fmt.Println("file create failed. err: " + err.Error())
   } else {
      //os.Truncate(path, 0) //clear
      n, _ := f.Seek(0, os.SEEK_END)
      _, err = f.WriteAt([]byte(content), n)
      defer f.Close()
   }
return err
}


免責聲明!

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



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