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() 方法设置文件权限。
此处评论已关闭