Go 操作文本文件时,与其它语言一样也有新建文件、打开文件、写文件、读文件、删除文件等操作。主要有两个标准库来提供这些操作,分别为 osioutil 。在该文中我们介绍 os 模块。

1. 新建文件

func Create(name string) (file *File, err Error)
//返回 File 的内存地址, 错误信息;通过 os 库调用
func NewFile(fd  int, name string) *File
//返回文件的内存地址, 通过 os 库调用

2. 打开文件

func Open(name   string) (file *File, err Error)
//返回 File 的内存地址, 错误信息;通过 os 库调用
func OpenFile(name string, flag  int, perm unit32)  (file *File, err Error)
//返回 File 的内存地址, 错误信息, 通过 os 库调用

3. 写入文件

//写入一个 slice, 返回写的个数, 错误信息, 通过 File 的内存地址调用
func (file  *File).Write(b []byte)  (n int, err Error)
//从 slice 的某个位置开始写入, 返回写的个数, 错误信息,通过 File 的内存地址调用
func (file  *File).WriteAt(b []byte, off int64) (n int, err Error)
//写入一个字符串, 返回写的个数, 错误信息, 通过 File 的内存地址调用
func (file  *File).WriteString(s string) (ret int, err Error)

4. 读取文件

//读取一个 slice, 返回读的个数, 错误信息, 通过 File 的内存地址调用
func (file  *File).Read(b []byte) (n int, err Error)
//从 slice 的某个位置开始读取, 返回读到的个数, 错误信息, 通过 File 的内存地址调用
func (file  *File).ReadAt(b []byte, off int64) (n int, err Error)

4. 删除文件

//传入文件的路径来删除文件,返回错误个数
func Remove(name string)    Error

5. 关闭文件

func (f *File) Close() error

6. 使用示例

package mainimport ("fmt""os"
)func main() {fileName := "/home/wohu/gocode/src/test.txt"writeFile(fileName)readFile(fileName)}func writeFile(fileName string) {file, err := os.Create(fileName)if err != nil {fmt.Println(err)return}for i := 0; i <= 5; i++ {outStr := fmt.Sprintf("%s:%d\n", "hello, world", i)file.WriteString(outStr)file.Write([]byte("abcd\n"))}file.Close()
}func readFile(fileName string) {file, err := os.Open(fileName)if err != nil {fmt.Println(err)return}defer file.Close()buf := make([]byte, 1024)for {n, _ := file.Read(buf)if n == 0 {//0 表示到达EOFbreak}os.Stdout.Write(buf)}
}

输出结果:

wohu@wohu:~/gocode/src$ ls
github.com  golang.org  hello.go  test.txt
wohu@wohu:~/gocode/src$ cat test.txt
hello, world:0
abcd
hello, world:1
abcd
hello, world:2
abcd
hello, world:3
abcd
hello, world:4
abcd
hello, world:5
abcd
wohu@wohu:~/gocode/src$

Go 学习笔记(21)— 标准库 os 操作文件(新建、打开、写入、读取、删除、关闭文件)相关推荐

  1. 【C++学习笔记】标准库类型vector

      标准库类型vector表示对象的集合,其中多有对象的类型都相同,集合中的每个对象都有一个与之对象的索引用来访问对象,需要注意的是引用不是对象,所以不存在包含引用的vector,因其用来容纳着其他对 ...

  2. 【C++学习笔记】标准库类型string

      标准库类型string表示可变长的字符序列,使用string类型必须先包含string头文件,string定义在命名空间std. #include <string> using std ...

  3. C++学习笔记(一):中文字符的处理——批量读取和修改文件夹下文件名,以及wchar_t/wstring与char/string不得不说的故事

    欢迎访问我的个人博客:https://midoq.github.io/ 前几天在网上下载了一堆教程,但是名字是用中文数字命名的,在windows文件管理下无法按数字顺序进行排序,这让强迫症的我很不爽, ...

  4. Go语言学习笔记—golang标准库log包

    文章目录 一 log简介 二 log简单使用 2.1 log.Print/Println/Printf函数 2.2 log.Panic/Panicf/Panicln函数 2.3 log.Fatal/F ...

  5. Go语言学习笔记—golang标准库xml包

    文章目录 一 核心函数 1.1 将struct转码成xml 1.2 将xml转码成struct 二 核心结构体 2.1 从输入流读取并解析xml 2.2 写xml到输出流 三 综合实例 3.1 将st ...

  6. Go语言学习笔记—golang标准库builtin包

    文章目录 一 常用函数 1.1 append 1.2 len 1.3 print.println 二 重点常用函数 2.1 panic 2.2 new和make 2.2.1 new 2.2.2 mak ...

  7. Go语言学习笔记—golang标准库math包

    文章目录 一 常量 二 常用函数 2.1 IsNaN函数 2.2 Ceil函数 2.3 Floor函数 2.4 Trunc函数 2.5 Abs函数 2.6 Max函数 2.7 Min函数 2.8 Di ...

  8. python标准库os的方法_Python中标准库OS的常用方法总结大全

    前言 我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数.在写一些系统脚本或者自动化运维脚本的时候经常会用到这个 os 库,所以这里做个整理, ...

  9. 「学习笔记」多项式的蛇皮操作

    文章目录 「学习笔记」多项式的蛇皮操作 前置知识 趋近 自然常数 对数 逆元 导函数 牛顿迭代与泰勒公式 不定积分与定积分 多项式乘法 多项式求逆元 多项式除法/取模 多项式牛顿迭代法 多项式开根 「 ...

最新文章

  1. 快速精确的体素GICP三维点云配准算法
  2. 通过docker搭建zabbix监控系统
  3. csdn2020年度博客之星 - 直播间(恭喜圆满结束)
  4. Java中做比较介绍
  5. opengl es坐标变换2
  6. linux shell 中的idd,shell脚本入门教程.pdf
  7. 2017年工作回顾及2018年新展望
  8. linux查看硬盘插槽_SSD小讲堂丨自己动手丰衣足食 手把手教你安装M.2固态硬盘
  9. edvac是商用计算机吗,EDVAC(eniac与edvac的区别)
  10. 我们要不要和to B“霸王龙”企业交朋友?
  11. burp安装及代理设置
  12. Word操作技巧大全1(转)
  13. 朗玛信息互联网医疗生态圈背后是满满挑战?
  14. 22春天津大学《工程地质学》在线作业二
  15. 数字音频接口(I2S,PCM/TDM,PDM)
  16. iOS系统下检查第三方APP是否安装及跳转启动
  17. 【报告分享】2021年中国奢侈品行业营销白皮书-群邑百度(附下载)
  18. 快递100Python爬虫(一)
  19. 子网掩码是什么?怎么设置?
  20. 封门村,中国第一鬼村,最恐怖之地

热门文章

  1. 2022-2028年中国场景金融行业深度调研及投资前景预测报告
  2. Python 标准库之 fcntl
  3. 当有人看不起你时,要懂得反省自己
  4. pytorch旧版安装
  5. MLIR中间表示与编译
  6. 降低数值精度以提高深度学习性能
  7. 编译器设计-自下而上分析器-误差恢复-语义分析
  8. CVPR 2020目标跟踪多篇开源论文(上)
  9. ❤️让人心跳加速的陌陌案例,大数据必需学会的基础案例!❤️ 【推荐收藏】
  10. 【CV】Pytorch一小时教程添加损失函数图像可视化训练过程