golang追加内容到文件末尾

golang读写文件,网上很多教程了
但是今天有个需求,想要把内容追加写到文件末尾
google了好久,没有查到
研究了一会儿file库,终于让我找到(蒙到)了追加的办法
最主要的2个函数:

func (f *File) Seek(offset int64, whence int) (ret int64, err error)
func (f *File) WriteAt(b []byte, off int64) (n int, err error)

  • Seek()查到文件末尾的偏移量
  • WriteAt()则从偏移量开始写入

以下是栗子:

// fileName:文件名字(带全路径)
// content: 写入的内容
func appendToFile(fileName string, content string) error {
   // 以只写的模式,打开文件
   f, err := os.OpenFile(fileName, os.O_WRONLY, 0644)
   if err != nil {
      fmt.Println("cacheFileList.yml file create failed. err: " + err.Error())
   } else {
      // 查找文件末尾的偏移量
      n, _ := f.Seek(0, os.SEEK_END)
      // 从末尾的偏移量开始写入内容
      _, err = f.WriteAt([]byte(content), n)
   }   
defer f.Close()   
return err}

拿去用吧,别客气 :)
觉得目前国内golang的文档博客还是稍微缺乏了点,
希望大家平时coding中有什么心得体会互相分享,
让golang越来越好用!


2016/08/31 记:
我就是笨蛋,明明最简单的方式就可以实现了:
f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_APPEND, 0666)
以写跟追加的方式打开文件。。。

以上

Just do IT!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 读写文件示例:### 删除文件os.Remove(fname) 创建目录os.Mkdir(dname, os.Mo...
    ppice阅读 4,617评论 0 0
  • 能力模型 选择题 [primary] 下面属于关键字的是()A. funcB. defC. structD. cl...
    _张晓龙_阅读 24,960评论 14 224
  • fmt格式化字符串 格式:%[旗标][宽度][.精度][arg索引]动词旗标有以下几种:+: 对于数值类型总是输出...
    皮皮v阅读 4,778评论 0 3
  • io包中最重要的是两个接口:Reader和Writer Reader接口##### type Writer int...
    勿以浮沙筑高台阅读 16,378评论 0 5
  • 文件系统模块是一个封装了标准的 POSIX 文件 I/O 操作的集合。通过require('fs')使用这个模块。...
    保川阅读 4,200评论 0 0