打开、创建文件
-
创建文件 Create
file, err := os.Create("F:/futureWeb/goLang/testFile.go")
- 参数:name。打开文件的路径:绝对路径、相对路径
- 目录分隔符:
/
- 文件不存在,则创建。文件存在,则将文件内容清空。
-
打开文件 Open
- 参数:name。打开文件的路径:绝对路径、相对路径
- 以只读方式打开文件。文件不存在,则打开失败。
f, err := os.Open("F:/futureWeb/goLang/testFile.go")
-
打开文件 OpenFile
f, err := os.OpenFile("F:/futureWeb/goLang/testFile.go", os.O_RDONLY, 6)
- 参数1:name。打开文件的路径:绝对路径、相对路径
- 参数2:打开文件权限:
O_RDONLY
(只读模式)、O_WRONLY
(只写模式)、O_RDWR
(可读可写模式)、O_APPEND
(追加模式)。 - 参数3:perm,表权限取值范围(0-7)一般传 6
- 0:没有任何权限
- 1:执行权限(如果是可执行文件,是可以运行的)
- 2:写权限
- 3:写权限与执行权限
- 4:读权限
- 5:读权限与执行权限
- 6:读权限与写权限
- 7:读权限、写权限、执行权限
写文件
-
按字符串写:
n, err := f.WriteString("123")
- n:写入的字符个数
- 回车换行:windows:
\r\n
, Linux:\n
-
按位置写:
off, _ := f.Seek(10, io.SeekEnd)
- 参数1:偏移量。正:向文件未偏,负:向文件头偏
- 参数2:偏移起始位置
-
io.SeekStart
:文件起始位置 -
io.SeekCurrent
:文件当前位置 -
io.SeekEnd
:文件结尾位置
-
- 返回值:表示从文件起始位置,到当前读写指针位置的偏移量
-
按字节写:
n, _ := f.WriteAt([]byte("111"), 10)
-
WriteAt()
:在文件指定偏移位置,写入[]byte
, 通常搭配Seek()
- 参数1:待写入数据
- 参数2:偏移量
- 返回值:实际写出的字节数
-
读文件
-
按行读
-
创建一个带有缓冲区的 Reader(读写器)
reader := bufio.NewReader(f) // f: 打开的文件指针
-
从 Reader 的缓冲区中,读取指定长度的数据。数据长度取决于 参数(dlime)
buf, er := reader.ReadBytes('\n') // 按行读
判断到达文件结尾:
if err != nil && err == io.EOF
到文件结尾
文件结尾标识是要单独读一次获取到的。缓冲区:内存中的一块区域,用来减少物理磁盘访问操作。
-
-
按字节读文件
read([]byte)
删文件
Remove
func Remove(name string) Error
调用该函数就可以删除文件名为 name 的文件
目录操作
-
打开目录:os.OpenFile
f, err := os.OpenFile(path, os.O_WRONLY, os.ModeDir)
- 打开目录 OpenFile:以只读方式打开目录。
- 参数1:name,打开目录的路径:绝对路径、相对路径
- 参数2:打开目录权限:O_RDONLY
- 参数3:os.ModeDir
- 返回值:返回一个可以读目录的文件指针
-
读目录:Readdir
info, err := f.Readdir(-1)
- 参数:想要打开的目录项个数。-1,表示所有。
- 返回值:FileInfo
- 原型:
type FileInfo interface { Name() string // base name of the file Size() int64 // length in bytes for regular files; system-dependent for others Mode() FileMode // file mode bits ModTime() time.Time // modification time IsDir() bool // abbreviation for Mode().IsDir() Sys() interface{} // underlying data source (can return nil) } func(f *File) Readdir(n int) ([]FileInfo, err) { FileInfo }
-
直接读目录:ioutil.ReadDir
info, err := ioutil.ReadDir(path)
- 参数:path,打开目录的路径:绝对路径、相对路径
-
其他目录操作
-
将当前工作目录修改为 dir 指定的目录
func Chdir(dir string) error
-
返回当前工作目录的绝对路径
func Getwd(dir string, err error)
-
使用指定的权限和名称创建一个目录
func MKdir(name string, perm FileMode) error
-
https://studygolang.com/pkgdoc
有疑问加站长微信联系(非本文作者)