golang 文件操作

作者: adm 分类: go 发布时间: 2023-12-17

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

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!