File文件读操作
只能读
package main
import (
"fmt"
"io"
"os"
)
func OpenCloseFile() {
f, err := os.Open("a.txt")
if err != nil {
fmt.Printf("err: %v\n", err)
} else {
fmt.Printf("f.Name(): %v\n", f.Name())
}
f2, err := os.OpenFile("a1.txt", os.O_RDWR|os.O_CREATE, 755)
if err != nil {
fmt.Printf("err: %v\n", err)
} else {
fmt.Printf("f2: %v\n", f2)
}
f.Close()
f2.Close()
}
创建文件
func createFile() {
f, _ := os.Create("a2.txt")
fmt.Printf("f: %v\n", f)
f2, _ := os.CreateTemp("", "temp")
fmt.Printf("f2: %v\n", f2)
}
Read()
func readOps() {
f, _ := os.Open("a.txt")
for {
buf := make([]byte, 3)
n, err := f.Read(buf)
if err == io.EOF {
break
}
fmt.Printf("n: %v\n", n)
fmt.Printf("string(buf): %v\n", string(buf))
}
f.Close()
ReadAt() 从某一个偏移量开始读
f2, _ := os.Open("a.txt")
buf := make([]byte, 5)
n, _ := f2.ReadAt(buf, 4)
fmt.Printf("n: %v\n", n)
fmt.Printf("string(buf): %v\n", string(buf))
f2.Close()
读目录,返回是一个切片类型
de, _ := os.ReadDir("user")
for _, v := range de {
fmt.Printf("v.IsDir(): %v\n", v.IsDir())
fmt.Printf("v.Name(): %v\n", v.Name())
}
Seek()定位read的位置
f3, _ := os.Open("a.txt")
f3.Seek(3, 0)
buf := make([]byte, 4)
n, _ := f3.Read(buf)
fmt.Printf("n: %v\n", n)
fmt.Printf("string(buf): %v\n", string(buf))
f3.Close()
}
func main() {
readOps()
}
File文件写操作
package main
import "os"
func write() {
f, _ := os.OpenFile("a.txt", os.O_RDWR|os.O_APPEND, 0755)
f.Write([]byte(" hey! how are you"))
f.Close()
}
func writeAt() {
f, _ := os.OpenFile("a.txt", os.O_RDWR, 0755)
f.WriteAt([]byte("aaa"), 3)
f.Close()
}
func main() {
write()
writeAt()
}