加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang 中的 io包

发布时间:2020-12-16 18:10:37 所属栏目:大数据 来源:网络整理
导读:io包:定义一些抽象化的接口 读相关 名称 作用 备注 Read 读接口 1 ReadCloser 读接口(包含 Close接口) 2 ReadSeeker 从哪里读到哪里 3 ReaderAt 从一定距离开始读 4 ReaderFrom 包含 ReadForm方法,读到Eof 或 error停止。返回读到的字节数 5 写相关 名称

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 readn")

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读