Go语言系列之标准库ioutil

ioutil标准库中提供了一些常用、方便的IO操作函数

一、相关方法

  • func ReadAll(r io.Reader) ([]byte, error)

  • func ReadDir(dirname string) ([]os.FileInfo, error)

  • func ReadFile(filename string) ([]byte, error)

  • func WriteFile(filename string, data []byte, perm os.FileMode) error

  • func TempDir(dir, prefix string) (name string, err error)

  • func TempFile(dir, pattern string) (f *os.File, err error)

二、示例代码

package main

import (
        "fmt"
        "io/ioutil"
        "strings"
)

func main() {
        //NopCloser返回一个读取对象的ReadCloser接口
        //用于提供Close方法
        r := strings.NewReader("hello");
        rcl := ioutil.NopCloser(r);
        defer rcl.Close();

        //ReadAll读取所有数据
        r2 := strings.NewReader("1234567890");
        p, _ := ioutil.ReadAll(r2);
        fmt.Println(string(p));  // 1234567890

        //读取目录下信息
        fileInfo, _ := ioutil.ReadDir("./");
        for _, v := range fileInfo {
                fmt.Println(v.Name());
        }

        //读取整个文件数据
        data, _ := ioutil.ReadFile("E:/go/project/test.log");
        fmt.Println(string(data));

        //向指定文件写入数据,如果文件不存在,则创建文件,写入数据之前清空文件
        ioutil.WriteFile("./xxx.txt", []byte("hello,world"), 0655);

        //在当前目录下,创建一个以test为前缀的临时文件夹,并返回文件夹路径
        name, _ := ioutil.TempDir("./", "test");
        fmt.Println(name);

        //在当前目录下,创建一个以test为前缀的文件,并以读写模式打开文件,并返回os.File指针
        file, _ := ioutil.TempFile("./", "test");
        file.WriteString("写入字符串");
        file.Close();
}