# 5.3、Golang标准库-ioutil | 函数名 | 作用 | - | - | ReadAll | 读取数据,返回读到的字节slice | ReadDir | 读取一个目录,返回目录入口数组 []os.FileInfo | ReadFile | 读取文件,返回文件内容(字节slice) | WriteFile| 根据文件路径,写入字节slice | TempDir| 在一个目录中创建指定前缀名的临时目录,返回新临时目录的路径 | TempFile| 在一个目录中创建指定前缀名的临时文件,返回os.File 示例 ```go package main import ( "fmt" "io/ioutil" "strings" ) func main() { r := strings.NewReader("Hello world") b, err := ioutil.ReadAll(r) if err != nil { fmt.Printf("err: %v\n", err) } else { fmt.Printf("string(b): %v\n", string(b)) // string(b): Hello world } } ``` 从文件中读取 ```go package main import ( "fmt" "io/ioutil" "os" ) func main() { f, _ := os.Open("demo.txt") defer f.Close() b, err := ioutil.ReadAll(f) if err != nil { fmt.Printf("err: %v\n", err) } else { fmt.Printf("string(b): %v\n", string(b)) // string(b): Hello world } } ``` 读取当前目录下所有文件 ```go package main import ( "fmt" "io/ioutil" ) func main() { fi, _ := ioutil.ReadDir(".") for _, v := range fi { fmt.Printf("v.Name(): %v\n", v.Name()) } } ``` 读取文件 ```go package main import ( "fmt" "io/ioutil" ) func main() { b, _ := ioutil.ReadFile("demo.txt") fmt.Printf("string(b): %v\n", string(b)) } ``` 写入文件内容 ```go package main import ( "io/ioutil" ) func main() { ioutil.WriteFile("demo.txt", []byte("hello"), 0644) } ``` 临时文件 ```go package main import ( "io/ioutil" "log" "os" ) func main() { // 创建临时文件 tempfile, err := ioutil.TempFile("", "temp") if err != nil { log.Fatal(err) } // 函数结束移除临时文件 defer os.Remove(tempfile.Name()) // clean up // 向临时文件写入字节数组 content := []byte("hello world") if _, err := tempfile.Write(content); err != nil { log.Fatal(err) } if err := tempfile.Close(); err != nil { log.Fatal(err) } } ```