Go by Example 中文版: 写文件
时间:2022-07-25
本文章向大家介绍Go by Example 中文版: 写文件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Go by Example 中文版:写文件
在 Go 中,写文件与我们前面看过的读文件方法类似。
对应的Go语言代码示例如下:
//Go by Example 中文版: 写文件
//https://gobyexample-cn.github.io/writing-files
//在 Go 中,写文件与我们前面看过的读文件方法类似。
package main
import (
"bufio"
"fmt"
"io/ioutil"
"os"
)
func check(e error) {
if e != nil {
panic(e)
}
}
func main() {
//开始!这里展示了如何写入一个字符串(或者只是一些字节)到一个文件。
d1 := []byte("hellongon")
err := ioutil.WriteFile("/tmp/dat1", d1, 0644)
check(err)
//对于更细粒度的写入,先打开一个文件。
f, err := os.Create("/tmp/dat2")
check(err)
//打开文件后,一个习惯性的操作是:立即使用defer调用文件的Close。
defer f.Close()
//您可以按期望的那样 Write 字节切片。
d2 := []byte{115, 111, 109, 101, 10}
n2, err := f.Write(d2)
check(err)
fmt.Printf("wrote %d bytesn", n2)
//WriteString也是可用的。
n3, err := f.WriteString("writesn")
fmt.Printf("wrote %d bytesn",n3)
//调用Sync将缓冲区中的数据写入硬盘。
f.Sync()
//与我们前面看到的带缓冲的 Reader 一样,bufio 还提供了的带缓冲的 Writer。
w := bufio.NewWriter(f)
n4, err := w.WriteString("bufferedn")
check(err)
fmt.Printf("wrote %d bytesn",n4)
//使用 Flush 来确保,已将所有的缓冲操作应用于底层 writer。
w.Flush()
}
运行这段文件写入代码。
$ go run writing-files.go
wrote 5 bytes
wrote 7 bytes
wrote 9 bytes
然后检查写入文件的内容。
$ cat /tmp/dat1
hello
go
$ cat /tmp/dat2
some
writes
buffered
我在CentOS7下的运行结果如下图所示:
我们刚刚看到了文件 I/O 思想, 接下来,我们看看它在 stdin 和 stdout 流中的应用。
- [先行者周末课程] 日历组件的开发思路讲解&&日历组件在实际工作中的使用方式
- Batik渲染png图片异常的bug修复
- SpringMVC支持跨域的两种姿势
- SpringMVC返回图片的几种方式
- Redis实现分布式锁相关注意事项
- React Native调用Android相机图库
- SpringMVC之请求参数的获取方式
- 糖大夫--测量流程性能监控自动化方案设计
- ReactNative调用Android原生模块
- jvm调优的工具介绍
- Python时间序列预测案例研究:巴尔的摩年度用水量
- [一对一课程] 之 设计并实现第一个JS模块?
- React Native 使用react-native-image-picker库实现图片上传功能
- 再谈Android动态链接库
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ES6 模糊查询 智能联想(不区分大小写)
- 干货分享 | K8s 、Docker 常用命令汇总
- 干货 | YOLOV5 训练自动驾驶数据集,并转Tensorrt,收藏!
- Vue中watch的简单应用
- Go 使用标准库 net/rpc 包
- 强大的 Stream API(三)
- 微软发布代码智能新基准数据集CodeXGLUE,多角度衡量模型优劣
- 强大的 Stream API(二)
- 无限想象空间,用Python玩转3D人体姿态估计
- 300亿美元,AMD为什么要买Xilinx?
- Angular5.0.0新特性
- 用Python实现坦克大战游戏 | 干货贴
- android studio 3.0 升级 项目遇到的问题及更改思路(问题小结)
- Android Studio 3.0被调方法参数名提示的取消方法
- Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)