[golang] golang文件读写 os.OpenFile(fileName,os.O_APPEND|os.O_WRONLY,os.ModeAppend)

读写文件要用到的OS包

func OpenFile(name string, flag int, perm FileMode) (*File, error) 

该方法第一个参数为文件路径,第二个参数控制文件的打开方式,第三个参数控制文件模式

可用的打开方式有

// Flags to OpenFile wrapping those of the underlying system. Not all
// flags may be implemented on a given system.
const (// Exactly one of O_RDONLY, O_WRONLY, or O_RDWR must be specified.// 只读模式O_RDONLY int = syscall.O_RDONLY // open the file read-only.// 只写模式O_WRONLY int = syscall.O_WRONLY // open the file write-only.// 可读可写O_RDWR   int = syscall.O_RDWR   // open the file read-write.// The remaining values may be or'ed in to control behavior.// 追加内容O_APPEND int = syscall.O_APPEND // append data to the file when writing.// 创建文件,如果文件不存在O_CREATE int = syscall.O_CREAT  // create a new file if none exists.// 与创建文件一同使用,文件必须存在O_EXCL   int = syscall.O_EXCL   // used with O_CREATE, file must not exist.// 打开一个同步的文件流O_SYNC   int = syscall.O_SYNC   // open for synchronous I/O.// 如果可能,打开时缩短文件O_TRUNC  int = syscall.O_TRUNC  // truncate regular writable file when opened.
)

打开模式

// The defined file mode bits are the most significant bits of the FileMode.
// The nine least-significant bits are the standard Unix rwxrwxrwx permissions.
// The values of these bits should be considered part of the public API and
// may be used in wire protocols or disk representations: they must not be
// changed, although new bits might be added.
const (// The single letters are the abbreviations// used by the String method's formatting.// 文件夹模式ModeDir        FileMode = 1 << (32 - 1 - iota) // d: is a directory// 追加模式ModeAppend                                     // a: append-only// 单独使用ModeExclusive                                  // l: exclusive use// 临时文件ModeTemporary                                  // T: temporary file; Plan 9 only// 象征性的关联ModeSymlink                                    // L: symbolic link// 设备文件ModeDevice                                     // D: device file// 命名管道ModeNamedPipe                                  // p: named pipe (FIFO)// Unix 主机 socketModeSocket                                     // S: Unix domain socket// 设置uidModeSetuid                                     // u: setuid// 设置gidModeSetgid                                     // g: setgid// UNIX 字符串设备,当设备模式是设置unixModeCharDevice                                 // c: Unix character device, when ModeDevice is set// 粘性的ModeSticky                                     // t: sticky// 非常规文件;对该文件一无所知ModeIrregular                                  // ?: non-regular file; nothing else is known about this file// bit位遮盖,不变的文件设置为none// Mask for the type bits. For regular files, none will be set.ModeType = ModeDir | ModeSymlink | ModeNamedPipe | ModeSocket | ModeDevice | ModeCharDevice | ModeIrregular// 权限位ModePerm FileMode = 0777 // Unix permission bits
)

创建一个文件并追加内容

package mainimport ("os"
)
func main() {fname := "/tmp/t.txt"f, err := os.OpenFile(fname, os.O_CREATE|os.O_RDWR|os.O_APPEND, os.ModeAppend|os.ModePerm)if err != nil {fmt.Println(err)}f.WriteString("test")f.Close()
}

删除文件

os.Remove(fname)

创建目录

dname :="/tmp/d"

os.Mkdir(dname,os.ModeDir|os.ModePerm)

创建完整目录路径,即中间目录不存在的话也一起创建

os.MkdirAll(dname,os.ModeDir|os.ModePerm)

golang os.OpenFile几种常用模式

os.O_WRONLY | os.O_CREATE | O_EXCL           【如果已经存在,则失败】

os.O_WRONLY | os.O_CREATE                         【如果已经存在,会覆盖写,不会清空原来的文件,而是从头直接覆盖写】

os.O_WRONLY | os.O_CREATE | os.O_APPEND  【如果已经存在,则在尾部添加写】

[golang] golang文件读写 os.OpenFile(fileName,os.O_APPEND|os.O_WRONLY,os.ModeAppend)相关推荐

  1. golang之文件读写/复制/断点续传

    目录 一.常用读取文件的三种方式 (1)利用os和file原生操作读文件 (2)使用bufio读取文件 (3)使用ioutil读取文件 二.常用写文件的三种方式 (1)利用os和file原生操作写文件 ...

  2. Golang的文件处理方式-常见的读写

    在 Golang 语言中,文件使用指向 os.File 类型的指针来表示的,也叫做文件句柄.注意,标准输入 os.Stdin 和标准输出 os.Stdout ,他们的类型都是 *os.File 哟.在 ...

  3. golang gob文件存储内容重新加载的续写问题

    背景 近日在学习github<the way to go>教程时最后一个短链接项目案例时遇到一个gob文件的续写问题,原链接:19.5 持久化存储:gob 环境:go1.12.7 darw ...

  4. golang 基于文件的消息队列 ---> diskqueue

    前言: 提到消息队列,首先想到:rabbit.kafka.redis/cordis.zeromq这种分布式的消息队列,基于内存缓存和服务发现算法,跨节点的这种消息发布订阅机制. 有时候的需求可能比较简 ...

  5. go语言基础-文件读写操作

    文章目录 一. 前言 二. 文件操作 1. 创建文件 2. 文件 打开文件 2. 打开文件 2.1 语法: 2.2 文件选项 2.2.1 文件模式 2.2.2 案例 创建一个不存在的文件 创建目录 创 ...

  6. python文件内容写入的方法有哪些、对应的方法和含义_Python的文件读写及目录操作...

    文件操作 一.Open创建文件读写 file = open(filename[,mode,encoding]) mode: "r" |"w" "a&q ...

  7. TCL脚本学习(过程与文件读写)

    文章目录 过程 全局变量和局部变量 可变参数 递归调用 文件读写操作 文件写举例 文件读举例 过程 在TCL脚本中,过程相当于C语言中的函数,将一系列命令进行重复使用的接口.其语法格式如下: proc ...

  8. golang文件读写os.OpenFile(“E:\\“, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)释义

    在自学golang时遇到OpenFile中这些参数不知为什么要这样去写,记录一下 os.O_WRONLY | os.O_CREATE | O_EXCL [如果已经存在,则失败]os.O_WRONLY ...

  9. Golang——文件创建和写入、OpenFile追加写入、Open读取文件、ReadBytes缓冲区读取、os.Args、flag

    Create创建文件: os.Create:文件不存在则创建,文件存在则删除文件中的内容 语法: file:创建文件的指针 err:创建文件出现异常后的信息file, err := os.Create ...

最新文章

  1. Reverse Integer
  2. 金蝶记账王无法打开智能卡注册页面怎么办
  3. CentOS 6.5安装VNC server
  4. 计算机英语课程背景,专家讲座第十五讲:信息化背景下高质量大学英语课程建设与教学设计...
  5. ie7浏览器传输中文的问题
  6. GOF设计模式之桥接模式
  7. PyTorch 1.0 中文官方教程:混合前端的 seq2seq 模型部署
  8. 基于SSLStrip的HTTPS会话劫持
  9. Python3 练习笔记一
  10. python数字时钟日期_Python数值日期时间笔记
  11. FireFox的插件范例,竟然有问题
  12. 【网络知识】Wireshark抓不到vlan tag问题解决
  13. linux下打包C++ Qt可执行程序出现的问题总结
  14. 谈谈B端、C端、G端的产品区别
  15. 全面公测|Grafana服务:一张图表胜过千行指标日志
  16. chrome mobile emulation 及周边漫谈和相关应用+想法
  17. SharePoint 2013的限制(三)非法字符
  18. 步步高i508玩JAVA游戏_步步高i508的功能怎么样 步步高i508的优缺点总结
  19. IOS发布报错 Invalid App Store Icon. The App Store Icon in the asset catalog in HBuild
  20. 需求分析报告应该包含哪些部分_如何写一篇惊艳的财务分析报告,果断收藏!...

热门文章

  1. python in range函数 (1、10、-1)_python range函数语法以及一些讨论
  2. python pip与pip3安装、更新、卸载、查看等常用命令汇总
  3. 基于JavaEE的汽车配件管理系统_JSP网站设计_SqlServer数据库设计
  4. #Windows server 2019搭建域控服务器
  5. 小程序如何使用阿里 iconfont
  6. 阿里iconfont需要用fill填充颜色
  7. 5分钟商学院-个人篇-高效能人士的素养
  8. springer science latex模板识别不到算法的\KwIn
  9. 上海市计算机等级考试一级试题,上海计算机一级考试试题及答案
  10. 人工智能 Python