io包:定义一些抽象化的接口
读相关
名称 | 作用 | 备注 |
---|---|---|
Read | 读接口 | 1 |
ReadCloser | 读接口(包含 Close接口) | 2 |
ReadSeeker | 从哪里读到哪里 | 3 |
ReaderAt | 从一定距离开始读 | 4 |
ReaderFrom | 包含 ReadForm方法,读到Eof 或 error停止。返回读到的字节数 | 5 |
写相关
名称 | 作用 | 备注 |
---|---|---|
Writer | 读接口 | 1 |
WriteCloser | 读接口(包含 Close接口) | 2 |
WriteSeeker | 从哪里读到哪里 | 3 |
WriterAt | 从一定距离开始读 | 4 |
WriterTo | 包含 WriterTo 方法,读到Eof 或 error停止。返回写入的字节数 |
函数相关
Copy (内部实现了ReaderFrom 和WriterTo 接口)
- func Copy(dst Writer,src Reader) (written int64,err error)
- // 将字符串变成 Reader
- r := strings.NewReader("some io.Reader stream to be read\n")
- if _,err := io.Copy(os.Stdout,r); err != nil {
- log.Fatal(err)
- }
WriteString(向输出流写入一个字符串)
- func WriteString(w Writer,s string) (n int,err error)
- io.WriteString(os.Stdout,"Hello World")
- /*output:
- Hello World
- */
bufio 包:对文字与字符串的操作
名称 | 作用 | 备注 |
Reader | 实现了 io.Reader 的缓存 | |
Writer | 实现了 io.Writer 的缓存 | |
ReadWriter | 存储*Reader *Writer,实现了io.ReadWriter. | |
Scanner | 读取数据的便利的接口 |
io/IoUtil 包: 对文件、目录系统的操作
名称 | 作用 | 备注 |
ReadAll | 读取数据,返回读到的字节 slice | 1 |
ReadDir | 读取一个目录,返回目录入口数组[]os.FileInfo, | 2 |
ReadFile | 读一个文件,返回文件内容(字节slice) | 3 |
WriteFile | 根据文件路径,写入字节slice | 4 |
TempDir | 在一个目录中创建指定前缀名的临时目录,返回新临时目录的路径 | 5 |
TempFile | 在一个目录中创建指定前缀名的临时文件,返回 os.File | 6 |
函数相关
ReadAll
- func ReadAll(r io.Reader) ([]byte,error)
- r := strings.NewReader("Go is a general-purpose language designed with systems programming in mind.")
- b,err := IoUtil.ReadAll(r)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Printf("%s",b)
- /*output:
- Go is a general-purpose language designed with systems programming in mind.
- */
ReadDir
- func ReadDir(dirname string) ([]os.FileInfo,error)
- files,err := IoUtil.ReadDir(".")
- if err != nil {
- log.Fatal(err)
- }
- for _,file := range files {
- fmt.Println(file.Name())
- }
WriteFile
- func WriteFile(filename string,data []byte,perm os.FileMode) error