开发者学堂课程【Go语言核心编程 - 面向对象、文件、单元测试、反射、TCP编程:文件的基本介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9725
文件的基本介绍
内容介绍
一、基本介绍
二、输入流和输出流
三、File 是一个结构体
一、基本介绍
文件,对我们并不陌生,文件是数据源(保存数据的地方)的一-种,比如大家经常使用的 word 文档,txt 文件,excel 文件..都是文件。文件最主要的作用就是保存数据,它既可以保存一-张图片,也可以保持视频,声音...
文件在程序中是以流的形式来操作的。
二、输入流和输出流
流:数据在数据源(文件)和程序(内存)之间经历的路径
输入流:数据从数据源(文件)到程序(内存)的路径,输入流一般是指读文件。
输出流:数据从程序(内存)到数据源(文件)的路径,从内存向文件流动,一般是写文件。
三、File是一个结构体
os.File 封装所有文件相关操作,File 是一个结构体
type File
type File struct [
内含隐藏或非导出字段
func ("File) Read
func (f *File) Read(b[]byte) (n int, err error)
Read 方法从仲读取最多 len(b)字节数据并写入 b。它返回读取的字节数和可能遇到的任何错误。文件终止标志是读取0个字节且返回值 err 为 io.EOF.
func ("File) ReadAt
func (f *File) ReadAt(b []byte, off int64) (n int, err error)
ReadAt 从指定的位置(相对于文件开始位置)读取 len(b)字节数据并写入 b。它返回读取的字节数和可能遇到的任何错误。当 nclen(b)时,本方法总是会返回错误;如果是因为到达文件结尾,返回值 err 会是 io.EOF。
func ("File) Write
func (f *File)Write(b []byte) (n int, err error)
Write 向文件中写入 len(b)字节数据。它返回写入的字节数和可能遇到的任何错误。如果返回值 nl=len(b),本方法会返回一个非 nil 的错误。
func CFilelWriteStrina func ("File) WriteAt
func (f"File) WriteAt(b []byte, off int64) (n int, err error)
WriteAt 在指定的位置(相对于文件开始位置)写入 len(b)字节数据。它返回写入的字节数和可能遇到的任何$如果返回值 nl=len(b),本方法会返回一个非nll的错误。
func ("File) Seek
func (f"File) Seek(offset int64, whence int) (ret int64, err error)
Seek 设置下一次读/写的位置。offset 为相对偏移量,而 whence 决定相对位置:0为相对文件开头,1为相对兰置,2为相对文件结尾。它返回新的偏移量(相对开头)和可能的错误。
func ("File) Sync
func (f "File) Sync() (err error)
Sync 递交文件的当前内容进行稳定的存储。一般来说,这表示将文件系统的最近写入的数据在内存中的拷贝到硬盘中稳定保存。
func ("File) Close
func (f "File) Close() error
Close 关闭文件 f,使文件不能用于读写。它返回可能出现的错误。
再看一下他的文档,打开 os,打开官方文档
type File
:
func Create(name string) (file *File, err error)
func Open(name string) (file *File, err error)
func OpenFile(name string, flag int, perm FileMode) (file *File, err error)
func NewFile(fd uintptr, name string) *File
func Pipe()(r"File, W*File, err error)
前四个为普通的方法,后面是跟 File 绑定的方法,会经常用到 File 结构体,代表一个打开的文件对象,有很多的方法。
func (*File) Stat) (fi Filelnfo, err error)
func (f *File) Fd() uintptr
func (f *File) Chdir() error
func (f *File) Chmod(mode FileMode) error
func (f *File) Chown(uid, gid int) error
func (f *File) Readdir(n int) (fi [Fileinfo, err error)
func (f *File) Readdirnames(n int) (names [string, err error)
func (f *File) Truncate(size int64) error
func (f *File) Read(b [byte) (n int, err error)
func (f *File) ReadAt(b [byte, off int64) (n int, err error)
· func (f *File) Write(b [byte) (n int, err error)
func (f *File) WriteString(s string) (ret int, err error)
func (f *File) WriteAt(b [byte, off int64) (n int, err error)
func (f *File) Seek(offset int64, whence int) (ret int64, err error)func (f *File) Sync() (err error)
func (f *File) Close() error
总结:后面我们操作文件,会经常使用到 os.File 结构体