Go 学习笔记(21)— 标准库 os 操作文件(新建、打开、写入、读取、删除、关闭文件)
Go
操作文本文件时,与其它语言一样也有新建文件、打开文件、写文件、读文件、删除文件等操作。主要有两个标准库来提供这些操作,分别为 os
和 ioutil
。在该文中我们介绍 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 操作文件(新建、打开、写入、读取、删除、关闭文件)相关推荐
- 【C++学习笔记】标准库类型vector
标准库类型vector表示对象的集合,其中多有对象的类型都相同,集合中的每个对象都有一个与之对象的索引用来访问对象,需要注意的是引用不是对象,所以不存在包含引用的vector,因其用来容纳着其他对 ...
- 【C++学习笔记】标准库类型string
标准库类型string表示可变长的字符序列,使用string类型必须先包含string头文件,string定义在命名空间std. #include <string> using std ...
- C++学习笔记(一):中文字符的处理——批量读取和修改文件夹下文件名,以及wchar_t/wstring与char/string不得不说的故事
欢迎访问我的个人博客:https://midoq.github.io/ 前几天在网上下载了一堆教程,但是名字是用中文数字命名的,在windows文件管理下无法按数字顺序进行排序,这让强迫症的我很不爽, ...
- Go语言学习笔记—golang标准库log包
文章目录 一 log简介 二 log简单使用 2.1 log.Print/Println/Printf函数 2.2 log.Panic/Panicf/Panicln函数 2.3 log.Fatal/F ...
- Go语言学习笔记—golang标准库xml包
文章目录 一 核心函数 1.1 将struct转码成xml 1.2 将xml转码成struct 二 核心结构体 2.1 从输入流读取并解析xml 2.2 写xml到输出流 三 综合实例 3.1 将st ...
- 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 ...
- 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 ...
- python标准库os的方法_Python中标准库OS的常用方法总结大全
前言 我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数.在写一些系统脚本或者自动化运维脚本的时候经常会用到这个 os 库,所以这里做个整理, ...
- 「学习笔记」多项式的蛇皮操作
文章目录 「学习笔记」多项式的蛇皮操作 前置知识 趋近 自然常数 对数 逆元 导函数 牛顿迭代与泰勒公式 不定积分与定积分 多项式乘法 多项式求逆元 多项式除法/取模 多项式牛顿迭代法 多项式开根 「 ...
最新文章
- 快速精确的体素GICP三维点云配准算法
- 通过docker搭建zabbix监控系统
- csdn2020年度博客之星 - 直播间(恭喜圆满结束)
- Java中做比较介绍
- opengl es坐标变换2
- linux shell 中的idd,shell脚本入门教程.pdf
- 2017年工作回顾及2018年新展望
- linux查看硬盘插槽_SSD小讲堂丨自己动手丰衣足食 手把手教你安装M.2固态硬盘
- edvac是商用计算机吗,EDVAC(eniac与edvac的区别)
- 我们要不要和to B“霸王龙”企业交朋友?
- burp安装及代理设置
- Word操作技巧大全1(转)
- 朗玛信息互联网医疗生态圈背后是满满挑战?
- 22春天津大学《工程地质学》在线作业二
- 数字音频接口(I2S,PCM/TDM,PDM)
- iOS系统下检查第三方APP是否安装及跳转启动
- 【报告分享】2021年中国奢侈品行业营销白皮书-群邑百度(附下载)
- 快递100Python爬虫(一)
- 子网掩码是什么?怎么设置?
- 封门村,中国第一鬼村,最恐怖之地