ioutil一些方便的操作函数集
1. NopCloser函数
该函数是将一个io.Reader接口包装成一个io.ReadCloser接口,其中包装生成的Close方法什么也不操作。可以在需要将io.Reader传入io.ReadCloser参数的函数的情况下使用。
1 | type nopCloser struct { |
2. ReadAll函数
很多时候,我们需要一次性读取 io.Reader 中的数据,通过上一节的讲解,我们知道有很多种实现方式。考虑到读取所有数据的需求比较多,Go 提供了 ReadAll 这个函数,用来从io.Reader 中一次读取所有数据。
1 | func ReadAll(r io.Reader) ([]byte, error) |
阅读该函数的源码发现,它是通过 bytes.Buffer 中的 ReadFrom 来实现读取所有数据的。该函数成功调用后会返回 err == nil 而不是 err == EOF。(成功读取完毕应该为 err == io.EOF,这里返回 nil 由于该函数成功期望 err == io.EOF,符合无错误不处理的理念)
参考文章:
参考链接
- 本文标题:ioutil一些方便的操作函数集
- 本文作者:lookupman
- 创建时间:2020-10-26 22:31:41
- 本文链接:https://lookupman.cn/2020/10/26/ioutil一些方便的操作函数集/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!