码迷,mamicode.com
首页 > 其他好文 > 详细

Golang写文件的坑

时间:2020-05-22 00:20:06      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:end   lan   nil   遇到   truncate   test   UNC   文件内容   create   

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
}

Golang写文件的坑

标签:end   lan   nil   遇到   truncate   test   UNC   文件内容   create   

原文地址:https://www.cnblogs.com/Kingram/p/12934345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!