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)
}