冲 冲 冲 !
个人主页:席万里的个人空间
文章目录
关于golang的I/O操作
1、Fileinfo
查看文件的基本信息Fileinfo,使用Stat方法。
package main
import (
"fmt"
"os"
"path"
"path/filepath"
)
func main() {
fileInfo, err := os.Stat("./demo.txt")
if err != nil {
fmt.Println("err :", err)
return
}
//文件名
fmt.Println(fileInfo.Name())
//文件大小
fmt.Println(fileInfo.Size())
//是否是目录
fmt.Println(fileInfo.IsDir()) //IsDirectory
//修改时间
fmt.Println(fileInfo.ModTime())
//权限
fmt.Println(fileInfo.Mode()) //-rw-r--r--
}
2、读写操作(Reader,Writer)
- Reader
Read函数:func (f *File) Read(b []byte) (n int, err error)
package main
import (
"fmt"
"io"
"os"
)
func main() {
fileName := "demo.txt"
file, err := os.Open(fileName)
if err != nil {
fmt.Println("err:", err)
return
}
defer file.Close()
bs := make([]byte, 4, 4)
n := -1
for {
n, err = file.Read(bs)
if n == 0 || err == io.EOF {
fmt.Println("读取到了文件的末尾,结束读取操作。。")
break
}
fmt.Println(string(bs[:n]))
}
}
运行结果
- Writer
func OpenFile(name string, flag int, perm FileMode) (*File, error)
package main
import (
"fmt"
"os"
)
func main()