zoukankan      html  css  js  c++  java
  • 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
    }
    
  • 相关阅读:
    一套权威的 MQTT Client 库
    tcp编程 示例
    我的座右铭
    win7改装 CentOS7,装完后开机,没有引导
    程序员16个建议
    Linux
    Linux
    socket
    关于RESTFUL的理解
    Django Rest Framework
  • 原文地址:https://www.cnblogs.com/Kingram/p/12934345.html
Copyright © 2011-2022 走看看