设为首页 收藏本站
查看: 675|回复: 0

[经验分享] Golang学习 - io/ioutil 包

[复制链接]

尚未签到

发表于 2018-9-20 07:55:33 | 显示全部楼层 |阅读模式
------------------------------------------------------------  

  
// Discard 是一个 io.Writer 接口,调用它的 Write 方法将不做任何事情
  
// 并且始终成功返回。
  
var Discard io.Writer = devNull(0)
  

  
// ReadAll 读取 r 中的所有数据,返回读取的数据和遇到的错误。
  
// 如果读取成功,则 err 返回 nil,而不是 EOF,因为 ReadAll 定义为读取
  
// 所有数据,所以不会把 EOF 当做错误处理。
  
func ReadAll(r io.Reader) ([]byte, error)
  

  
// ReadFile 读取文件中的所有数据,返回读取的数据和遇到的错误。
  
// 如果读取成功,则 err 返回 nil,而不是 EOF
  
func ReadFile(filename string) ([]byte, error)
  

  
// WriteFile 向文件中写入数据,写入前会清空文件。
  
// 如果文件不存在,则会以指定的权限创建该文件。
  
// 返回遇到的错误。
  
func WriteFile(filename string, data []byte, perm os.FileMode) error
  

  
// ReadDir 读取指定目录中的所有目录和文件(不包括子目录)。
  
// 返回读取到的文件信息列表和遇到的错误,列表是经过排序的。
  
func ReadDir(dirname string) ([]os.FileInfo, error)
  

  
// NopCloser 将 r 包装为一个 ReadCloser 类型,但 Close 方法不做任何事情。
  
func NopCloser(r io.Reader) io.ReadCloser
  

  
// TempFile 在 dir 目录中创建一个以 prefix 为前缀的临时文件,并将其以读
  
// 写模式打开。返回创建的文件对象和遇到的错误。
  
// 如果 dir 为空,则在默认的临时目录中创建文件(参见 os.TempDir),多次
  
// 调用会创建不同的临时文件,调用者可以通过 f.Name() 获取文件的完整路径。
  
// 调用本函数所创建的临时文件,应该由调用者自己删除。
  
func TempFile(dir, prefix string) (f *os.File, err error)
  

  
// TempDir 功能同 TempFile,只不过创建的是目录,返回目录的完整路径。
  
func TempDir(dir, prefix string) (name string, err error)
  

  
------------------------------
  

  
// 示例:读取目录
  
func main() {
  
rd, err := ioutil.ReadDir("/")
  
fmt.Println(err)
  
for _, fi := range rd {
  
if fi.IsDir() {
  
fmt.Printf("[%s]\n", fi.Name())
  

  
} else {
  
fmt.Println(fi.Name())
  
}
  
}
  
}
  

  
------------------------------
  

  
// 示例:临时目录、临时文件
  
func main() {
  
// 创建临时目录
  
dir, err := ioutil.TempDir("", "Test")
  
if err != nil {
  
fmt.Println(err)
  
}
  
defer os.Remove(dir) // 用完删除
  
fmt.Printf("%s\n", dir)
  

  
// 创建临时文件
  
f, err := ioutil.TempFile(dir, "Test")
  
if err != nil {
  
fmt.Println(err)
  
}
  
defer os.Remove(f.Name()) // 用完删除
  
fmt.Printf("%s\n", f.Name())
  
}
  

  
------------------------------------------------------------
  

  

  

  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-598122-1-1.html 上篇帖子: golang之log rotate 下篇帖子: 从源码(编译)安装golang
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表