首页 > 代码库 > io/ioutil

io/ioutil

io/ioutil包实现了一些 i/o 操作的函数

package main

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

func main() {
	dirname, err := ioutil.ReadDir("../") //获取dirname指定的目录的目录信息的有序列表。
	fmt.Println(err)
	for k, v := range dirname {
		fmt.Println(k, "=", v.Name()) //文件或目录或
		fmt.Println(v.IsDir())        //是否是目录
		fmt.Println(v.ModTime())      //文件创建时间
		fmt.Println(v.Mode())         //文件的权限
		fmt.Println(v.Size())         //文件大小
		fmt.Println(v.Sys())          //系统信息
	}

	byte1, err := ioutil.ReadFile("main.go") //读取一个文件
	fmt.Println(string(byte1), err)

	reader := strings.NewReader("hello world")
	byte2, err2 := ioutil.ReadAll(reader) //输入一个io.Reader元,返回的是一个[]byte
	fmt.Println(reader, err2, string(byte2))

	reader = strings.NewReader("你好世界")
	f := ioutil.NopCloser(reader) //读取一个io.Reader元,返回的是一个io.ReadClose接口,提供Close方法
	defer f.Close()
	byte2, err2 = ioutil.ReadAll(f)
	fmt.Println(string(byte2), err2)

	name, err3 := ioutil.TempDir("./", "tem") //读取一个目录,返回的是prefix+随机数字的临时目录,同时会创建这个目录
	fmt.Println(name, err3)
	os.Remove(name) //删除刚生成的临时目录

	file, err4 := ioutil.TempFile("./", "tem") //和上面一样,创建一个临时文件,返回*os.File文件指针和err
	file.WriteString("你好世界")
	file.Close()
	byte4, err4 := ioutil.ReadFile(file.Name())
	fmt.Println(string(byte4), err4)
	os.Remove(file.Name()) //删除刚生成的临时文件

	err = ioutil.WriteFile("test.txt", []byte("你好世界"), 0777) //向一个文件写入数据,如果没有根据fileMode创建一个,清空文件后写入
	fmt.Println(err)

	err = os.Remove("test.txt") //删除刚生成的文件
	fmt.Println(err)
}



io/ioutil