Go读写文件

在 Go 语言中,可以使用标准库中的 os 包和 ioutil 包来进行文件读写操作。

读文件

使用 ioutil 包中的 ReadFile() 函数可以很方便地读取一个文件的内容。ReadFile() 函数的使用方法如下:

import "io/ioutil"

func ReadFile(filename string) ([]byte, error) {
    return ioutil.ReadFile(filename)
}

ReadFile() 函数接受一个文件名作为参数,返回一个字节数组和一个错误对象。如果读取文件成功,返回的字节数组中包含了文件的内容;如果读取文件失败,则返回一个非 nil 的错误对象。

使用 os 包中的 Open() 函数和 Read() 方法也可以实现文件读取操作。代码示例:

import (
    "os"
)

func ReadFile(filename string) ([]byte, error) {
    file, err := os.Open(filename)
    if err != nil {
        return nil, err
    }
    defer file.Close()

    fileInfo, err := file.Stat()
    if err != nil {
        return nil, err
    }

    size := fileInfo.Size()
    buffer := make([]byte, size)

    _, err = file.Read(buffer)
    if err != nil {
        return nil, err
    }

    return buffer, nil
}

上面的代码中,我们首先通过 os.Open() 函数打开一个文件,并获取到文件的句柄。然后,通过句柄调用 Stat() 方法获取文件的信息,包括文件大小。接着,我们创建一个缓冲区,大小为文件的大小,最后通过句柄的 Read() 方法将文件的内容读取到缓冲区中。

写文件

使用 ioutil 包中的 WriteFile() 函数可以很方便地写入一个文件的内容。WriteFile() 函数的使用方法如下:

import "io/ioutil"

func WriteFile(filename string, data []byte, perm os.FileMode) error {
    return ioutil.WriteFile(filename, data, perm)
}

WriteFile() 函数接受一个文件名、一个字节数组和一个文件权限作为参数,将字节数组中的内容写入到指定的文件中。如果写入成功,则返回 nil;否则返回一个非 nil 的错误对象。

使用 os 包中的 Create() 函数和 Write() 方法也可以实现文件写入操作。代码示例:

import (
    "os"
)

func WriteFile(filename string, data []byte, perm os.FileMode) error {
    file, err := os.Create(filename)
    if err != nil {
        return err
    }
    defer file.Close()

    _, err = file.Write(data)
    if err != nil {
        return err
    }

    err = file.Chmod(perm)
    if err != nil {
        return err
    }

    return nil
}

上面的代码中,我们首先通过 os.Create() 函数创建一个文件,并获取到文件的句柄。然后,通过句柄调用 Write() 方法将数据写入到文件中。最后,通过句柄的 Chmod() 方法设置文件权限。

最后修改:2023 年 08 月 27 日
如果觉得我的文章对你有用,请随意赞赏