利用Go语言追加内容到文件末尾

 更新时间:2016年09月08日 16:09:52   作者:steveye  
关于Go语言读写文件,网上很多教程了,但是今天有个需求,想要把内容追加写到文件末尾,在网上找了很久才找到答案,现在分享给大家,有需要的可以参考借鉴。

前言

我研究了file库,终于让我找到了利用Go语言追加内容到文件末尾的办法

主要的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越来越好用!以上就是这篇文章的全部内容,希望对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流。

 

相关文章

  • Go设计模式之单例模式讲解和代码示例

    Go设计模式之单例模式讲解和代码示例

    单例是一种创建型设计模式,让你能够保证一个类只有一个实例,并提供一个访问该实例的全局节点,本文就通过代码示例给大家讲讲Go单例模式,需要的朋友可以参考下
    2023-07-07
  • 浅析golang如何处理json中的null

    浅析golang如何处理json中的null

    json 是一种常用的数据格式,在 go 使用 json 序列化和反序列化时比较方便的,但在使用过程中,会遇到一些问题,比如 null,所以下面我们就来看看golang如何处理json中的null吧
    2023-09-09
  • 模块一 GO语言基础知识-库源码文件

    模块一 GO语言基础知识-库源码文件

    这篇文章主要介绍了模块一 GO语言基础知识-库源码文件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 通过案例详细聊聊Go语言的变量与常量

    通过案例详细聊聊Go语言的变量与常量

    在任何一门现代的高级语言中,变量和常量都是它非常基础的程序结构的组成部分,下面这篇文章主要给大家介绍了关于如何通过案例详细聊聊Go语言的变量与常量的相关资料,需要的朋友可以参考下
    2023-03-03
  • go语言的初始化顺序,包,变量,init详解

    go语言的初始化顺序,包,变量,init详解

    这篇文章主要介绍了go语言的初始化顺序,包,变量,init详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 解读rand.Seed(time.Now().UnixNano())的作用及说明

    解读rand.Seed(time.Now().UnixNano())的作用及说明

    这篇文章主要介绍了关于rand.Seed(time.Now().UnixNano())的作用及说明,具有很好的参考价值,希望对大家有所帮助。
    2023-03-03
  • Go语言defer的一些神奇规则示例详解

    Go语言defer的一些神奇规则示例详解

    这篇文章主要为大家介绍了Go语言defer的一些神奇规则示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 教你用go语言实现比特币交易功能(Transaction)

    教你用go语言实现比特币交易功能(Transaction)

    每一笔比特币交易都会创造输出,输出都会被区块链记录下来。给某个人发送比特币,实际上意味着创造新的 UTXO 并注册到那个人的地址,可以为他所用,今天通过本文给大家分享go语言实现比特币交易功能,一起看看吧
    2021-05-05
  • Go Ticker 周期性定时器用法及实现原理详解

    Go Ticker 周期性定时器用法及实现原理详解

    这篇文章主要为大家介绍了Go Ticker 周期性定时器用法及实现原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Go语言Cookie用法分析

    Go语言Cookie用法分析

    这篇文章主要介绍了Go语言Cookie用法,结合实例形式分析了Go语言Cookie的设置、读取等相关操作技巧,需要的朋友可以参考下
    2017-02-02

最新评论