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);
}
}