Golang io.ioutil 包详解
io/ioutil
包提供了一些实用的函数来处理输入输出。这个包中的函数在读取文件时会一次性将文件内容全部读入内存,因此不适合读取大文件。
以下是 ioutil
包中常用的一些函数:
func ReadFile(filename string) ([]byte, error)
:读取文件内容到字节切片,并返回。func WriteFile(filename string, data []byte, perm os.FileMode) error
:将数据写入文件,如果文件不存在将创建文件。func ReadDir(dirname string) ([]os.FileInfo, error)
:读取目录内容到FileInfo
切片。func TempDir(dir, prefix string) (name string, err error)
:创建临时目录。func TempFile(dir, prefix string) (f *os.File, err error)
:创建临时文件。
示例代码:
package main
import (
"fmt"
"io/ioutil"
"log"
)
func main() {
// 读取文件内容到字节切片
content, err := ioutil.ReadFile("example.txt")
if err != nil {
log.Fatal(err)
}
fmt.Printf("File contents: %s", content)
// 将字符串写入文件
str := "Hello, World!"
err = ioutil.WriteFile("output.txt", []byte(str), 0644)
if err != nil {
log.Fatal(err)
}
}
在实际应用中,如果需要处理大文件,应该使用 bufio
包提供的 Scanner
或 Reader
,这些类型使用缓冲区来提高性能。
评论已关闭