golang 文件操作
golang 文件操作
获取文件大小
"path/filepath" import ( "path/filepath" ) func GetFileSize(filename string) int64 { var size int 64 filepath.Walk(filename, func(path string, f os.FileInfo, err error) error { if err != nil{ return err }else{ result = f.size(); return nil } }) return result; }
读取文件
import ( "fmt" "os" ) func ReadFile(){ filePath := './data.json'; fileContent := ''; //开辟缓存区 dataCache := make([]byte, 1000); // 打开文件 file, fileErr := os.OpenFile(filepath, os.O_RDWR, 0777); // 关闭文件 defer func() { if fileErr != nil{ File.Close() } } if fileErr != nil{ fmt.Println("error:", fileErr) }else{ // 向缓存区写入数据 readSize, readErr := file.Read(dataFile); if readErr != nil { fmt.Println("readErr", readErr); }else{ // 转为字符 fileContent = string(dataFile); fmt.Println("file content", fileContent) } } }
写入文件
func WriteFile(){ filepath := './data.json' newMsg := []byte("\n new msg from wirte func") // 打开文件,选择可写入模式 file, fileErr := os.OpenFile(filepath, os.O_APPEND, 0777); // 结束关闭文件 defer func(){ if fileErr == nil{ file.Colse() } } if fileErr != nil { fmt.Println(fileErr) }else{ // 写入信息 WriteSize, writeErr := file.Write(msg); fmt.Println(writeSize, writeErr); }