共计 1300 个字符,预计需要花费 4 分钟才能阅读完成。
golang 规范库 os 模块 -File 文件读操作
本文视频教程:https://www.bilibili.com/vide…
关注公众号,取得课程材料和源码
这里完结和 File
构造体相干的文件读操作
package main
import (
"fmt"
"os"
)
// 关上敞开文件
func openCloseFile() {
// 只能读
f, _ := os.Open("a.txt")
fmt.Printf("f.Name(): %v\n", f.Name())
// 依据第二个参数 能够读写或者创立
f2, _ := os.OpenFile("a1.txt", os.O_RDWR|os.O_CREATE, 0755)
fmt.Printf("f2.Name(): %v\n", f2.Name())
err := f.Close()
fmt.Printf("err: %v\n", err)
err2 := f2.Close()
fmt.Printf("err2: %v\n", err2)
}
// 创立文件
func createFile() {// 等价于:OpenFile(name, O_RDWR|O_CREATE|O_TRUNC, 0666)
f, _ := os.Create("a2.txt")
fmt.Printf("f.Name(): %v\n", f.Name())
// 第一个参数 目录默认:Temp 第二个参数 文件名前缀
f2, _ := os.CreateTemp("","temp")
fmt.Printf("f2.Name(): %v\n", f2.Name())
}
// 读操作
func readOps() {
// 循环读取
/* f, _ := os.Open("a.txt")
for {buf := make([]byte, 6)
n, err := f.Read(buf)
fmt.Println(string(buf))
fmt.Printf("n: %v\n", n)
if err == io.EOF {break}
}
f.Close()
*/
/* buf := make([]byte, 10)
f2, _ := os.Open("a.txt")
// 从 5 开始读 10 个字节
n, _ := f2.ReadAt(buf, 5)
fmt.Printf("n: %v\n", n)
fmt.Printf("string(buf): %v\n", string(buf))
f2.Close() */
// 测试 a 目录上面有 b 和 c 目录
/* f, _ := os.Open("a")
de, _ := f.ReadDir(-1)
for _, v := range de {fmt.Printf("v.IsDir(): %v\n", v.IsDir())
fmt.Printf("v.Name(): %v\n", v.Name())
} */
// 定位
f, _ := os.Open("a.txt")
f.Seek(3, 0)
buf := make([]byte, 10)
n, _ := f.Read(buf)
fmt.Printf("n: %v\n", n)
fmt.Printf("string(buf): %v\n", string(buf))
f.Close()}
func main() {// openCloseFile()
// createFile()
readOps()}
正文完