文件操作常用API

未匹配的标注

建立与打开文件#

新建文件#

新建文件可以通过如下方法:

func  Create(name  string)  (file  *File,  err  Error)

根据提供的文件名创建新的文件,返回一个文件对象,返回的文件对象是可读写的。

打开文件#

通过如下两个方法来打开文件:

func  Open(name  string)  (file  *File,  err  Error)

Open () 是以只读权限打开文件名为 name 的文件,得到的文件指针 file,只能用来对文件进行 “读” 操作。如果我们有 “写” 文件的需求,就需要借助 Openfile 函数来打开了。

func OpenFile(name string, flag int, perm uint32) (file *File, err Error)

OpenFile () 可以选择打开 name 文件的读写权限。这个函数有三个默认参数:
参 1:name,表示打开文件的路径。可使用相对路径 或 绝对路径
参 2:flg,表示读写模式,常见的模式有:
O_RDONLY (只读模式), O_WRONLY (只写模式), O_RDWR (可读可写模式)。
参 3:perm,表示打开权限。来源于 Linux 系统调用中的 open 函数,参 2 为:O_CREATE 时,可创建新文件。

权限取值范围(0-7),表示如下:

  • 0:没有任何权限
  • 1:执行权限 (如果是可执行文件,是可以运行的)
  • 2:写权限
  • 3: 写权限与执行权限
  • 4:读权限
  • 5: 读权限与执行权限
  • 6: 读权限与写权限
  • 7: 读权限,写权限,执行权限

关闭文件函数:

func (f *File) Close() error

写文件#

写入字符串到文件:

func (file *File) WriteString(s string) (ret int, err Error)

获取文件读写偏移量:

func (f *File) Seek(offset int64, whence int) (ret int64, err error) 

参 1: 偏移量。 正:向文件尾偏。 负:向文件头偏
参 2: 偏移起始位置:     
io.SeekStart: 文件起始位置
io.SeekCurrent: 文件当前位置
io.SeekEnd: 文件结尾位置
返回值:表示从文件起始位置,到当前文件读写指针位置的偏移量。

在指定位置写入数据:

func (file *File) WriteAt(b []byte, off int64) (n int, err Error)

参 1:待写入的数据内容

参 2:偏移量(通常是 Seek 函数返回值)

按字节写数据到文件:

func (file *File) Write(b []byte) (n int, err Error)

读文件#

按行读文件:可以通过两步来实现。#

首先,创建一个带有缓冲区的 Reader,使用 bufio 包下的 NewReader () 函数来实现。

func NewReader(rd io.Reader) *Reader

然后,从 Reader 自带的缓冲区中,按指定的 “分隔符(delim)” 获取数据。我们通常使用 ReadBytes (‘\n’) 来有效的提取一行数据。

func (b *Reader) ReadBytes(delim byte) ([]byte, error)

读到的数据成功保存在返回的 [] byte 中。可以循环按行读取整个文件。

按字节读文件:#

func (file *File) Read(b []byte) (n int, err Error)

读取数据到 b 中

func (file *File) ReadAt(b []byte, off int64) (n int, err Error)

从 off 开始读取数据到 b 中

删除文件#

func Remove(name string) Error

调用该函数就可以删除文件名为 name 的文件

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
wangchunbo
讨论数量: 0
发起讨论 只看当前版本


暂无话题~