Go+ 写文件方法教程(4.15)

举报
liuzhen007 发表于 2021/12/01 22:51:55 2021/12/01
【摘要】 目录 Go+ 概述 正文 导入包 利用 os 包写入文件 打开并写入文件 利用 bufio 包写入文件 Go+ 概述 Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学...

目录

Go+ 概述

正文

导入包

利用 os 包写入文件

打开并写入文件

利用 bufio 包写入文件


Go+ 概述

Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。

正文

和读文件方法类似,Go+ 也提供很多写文件的方法,今天我们就来了解一下这方面的一些内容。

导入包

Go+ 在写文件时,一般会使用的工具库是 os 和 bufio 包,导入方式如下:


  
  1. import (
  2. "bufio"
  3. "os"
  4. )

利用 os 包写入文件

首先,我们来看如何将字节数组写入文件,示例代码如下:


  
  1. import (
  2. "bufio"
  3. "os"
  4. )
  5. func check(e error) {
  6. if e != nil {
  7. panic(e)
  8. }
  9. }
  10. d1 := []byte("hello\nworld\n")
  11. err := os.WriteFile("/tmp/f1", d1, 0644)
  12. check(err)

执行完毕后,没有触发 panic,说明程序执行成功啦。但是不够直观,我们把文件内容读一下再打印出来,进而佐证我们的推断,示例代码:


  
  1. import (
  2. "bufio"
  3. "os"
  4. )
  5. func check(e error) {
  6. if e != nil {
  7. panic(e)
  8. }
  9. }
  10. d1 := []byte("hello\nworld\n")
  11. err := os.WriteFile("/tmp/f1", d1, 0644)
  12. check(err)
  13. dat, err := os.ReadFile("/tmp/f1")
  14. check(err)
  15. print(string(dat))

执行结果:

hello
world

从执行结果可以知道我们的推断是正确的,程序没有问题。

亲自试一试!

打开并写入文件

写文件还有一种思路,就是首先创建或者打开一个文件,再向其中写入内容信息,示例代码如下:


  
  1. import (
  2. "bufio"
  3. "os"
  4. )
  5. func check(e error) {
  6. if e != nil {
  7. panic(e)
  8. }
  9. }
  10. f, err := os.Create("/tmp/f2")
  11. check(err)
  12. // 打开文件后,defer 关闭文件属于常规做法
  13. defer f.Close()
  14. d2 := []byte{1, 222, 66, 88, 10, 102}
  15. n2, err := f.Write(d2)
  16. check(err)
  17. printf("wrote %d bytes\n", n2)
  18. n3, err := f.WriteString("gop is go+\n")
  19. check(err)
  20. printf("wrote %d bytes\n", n3)
  21. // 保证文件内容存入磁盘
  22. f.Sync()

执行结果:

wrote 6 bytes
wrote 11 bytes

亲自试一试!

利用 bufio 包写入文件

bufio 包也提供了缓冲写卡器,可以用来写文件,示例代码如下:


  
  1. import (
  2. "bufio"
  3. "os"
  4. )
  5. func check(e error) {
  6. if e != nil {
  7. panic(e)
  8. }
  9. }
  10. f, err := os.Create("/tmp/f1")
  11. check(err)
  12. // 打开文件后,defer 关闭文件属于常规做法
  13. defer f.Close()
  14. w := bufio.NewWriter(f)
  15. n4, err := w.WriteString("use bufio package write data\n")
  16. check(err)
  17. printf("wrote %d bytes\n", n4)
  18. // 保证缓存数据生效
  19. w.Flush()

执行结果:

wrote 29 bytes

亲自试一试!

 

文章来源: liuzhen.blog.csdn.net,作者:Data-Mining,版权归原作者所有,如需转载,请联系作者。

原文链接:liuzhen.blog.csdn.net/article/details/121646354

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。