阅读目录
Go语言主要有os bufio ioutil单个模块可以实现文件的读写相关操作
一、OS
打开文件和关闭文件
os.Open()
函数能够打开一个文件,返回一个*File
和一个err
。对得到的文件实例调用close()
方法能够关闭文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
读取文件(指定大小)
Read方法定义如下:
1 |
|
它接收一个字节切片,返回读取的字节数和可能的具体错误,读到文件末尾时会返回0
和io.EOF
。 举个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
读取文件(所有内容)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
文件写入
os.OpenFile()
函数能够以指定模式打开文件,从而实现文件写入相关功能。
1 2 3 |
|
name
:要打开的文件名 flag
:打开文件的模式。 模式有以下几种
模式 | 含义 |
os.O_WRONLY |
只写 |
os.O_CREATE |
创建文件 |
os.O_RDONLY |
只读 |
os.O_RDWR |
读写 |
os.O_TRUNC |
清空 |
os.O_APPEND |
追加 |
perm
:文件权限,一个八进制数。r(读)04,w(写)02,x(执行)01。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
二、bufio
读取文件
bufio是在file的基础上封装了一层API,支持更多的功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
写入文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
三、ioutil
读取文件
io/ioutil
包的ReadFile
方法能够读取完整的文件,只需要将文件名作为参数传入。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
写入文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
四、练习
1.借助io.Copy()
实现一个拷贝文件函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
2.实现一个cat命令
使用文件操作相关知识,模拟实现linux平台cat
命令的功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|