GO的文件操作方法主要封装在os.File结构体中,可以进行文件的打开、关闭、读入、写出,详细内容可见官方文档的os.File以及相关函数方法,这里只介绍几种常用的方法。
一、文件操作
1、打开关闭
1)打开
func Open(name string) (*File, error)
Open 打开指定文件供读取。如果成功,则可以使用返回文件的方法进行读取;相关文件描述符的模式为 O_RDONLY。如果出现错误,错误类型为 *PathError。
func OpenFile(name string, flag int, perm FileMode) (*File, error)
OpenFile是一个更一般性的文件打开函数,大多数调用者都应用Open或Create代替本函数。它会使用指定的选项(如O_RDONLY等)、指定的模式(如0666等)打开指定名称的文件。如果操作成功,返回的文件对象可用于I/O。如果出错,错误底层类型是*PathError。
2)关闭
func (f *FIle) Close() error
Close关闭文件f,使文件不能用于读写。它返回可能出现的错误。
2、文件读写
1)读文件
func (f *FIle) Read(b []byte) (n int,err error)
Read方法从f中读取最多len(b)字节数据并写入b。它返回读取的字节数和可能遇到的任何错误。文件终止标志是读取0个字节且返回值err为io.EOF
func (f *FIle) ReadAt(b []byte, off int64) (n int,err error)
ReadAt从指定的位置(相对于文件开始位置)读取len(b)字节数据并写入b。它返回读取的字节数和可能遇到的任何错误。当n<len(b)时,本方法总是会返回错误;如果是因为到达文件结尾,返回值err会是io.EOF。
2)写文件
func (f *File) Write(b []byte) (n int, err error)
Write向文件中写入len(b)字节数据。它返回写入的字节数和可能遇到的任何错误。如果返回值n!=len(b),本方法会返回一个非nil的错误。
func (f *File) WriteString(s string) (n int, err error)
WriteString类似Write,但接受一个字符串参数。
func (f *File) Write(b []byte, off int64) (n int, err error)
WriteAt在指定的位置(相对于文件开始位置)写入len(b)字节数据。它返回写入的字节数和可能遇到的任何错误。如果返回值n!=len(b),本方法会返回一个非nil的错误。
3、其他常用函数
fun NewFile(fd uintptr, name string) *File
NewFile使用给出的Unix文件描述符和名称创建一个文件。
func (f *File) Seek(offset int64, whence int) (ret int64, err error)
Seek设置下一次读/写的位置。offset为相对偏移量,而whence决定相对位置:0为相对文件开头,1为相对当前位置,2为相对文件结尾。它返回新的偏移量(相对开头)和可能的错误。
func (f *File) Sync() (err error)
Sync递交文件的当前内容进行稳定的存储。一般来说,这表示将文件系统的最近写入的数据在内存中的拷贝刷新到硬盘中稳定保存。