golang规范库os模块-File文件读操作
本文视频教程:https://www.bilibili.com/vide...
关注公众号,取得课程材料和源码
这里完结和File
构造体相干的文件读操作
package mainimport ( "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()}