golang 中的 io包

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读取数据,返回读到的字节 slice1
ReadDir读取一个目录,返回目录入口数组 []os.FileInfo,2
ReadFile读一个文件,返回文件内容(字节slice)3
WriteFile根据文件路径,写入字节slice4
TempDir在一个目录中创建指定前缀名的临时目录,返回新临时目录的路径5
TempFile在一个目录中创建指定前缀名的临时文件,返回 os.File6

函数相关

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

转载于:https://my.oschina.net/lemos/blog/1212799

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值