分享
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
我有一个文件a.txt 里面的内容为 1,2,3,4,5,6,7 (每个数字单独一行)
然后读取文件的内容
```go
func main() {
readFile, err := os.Open("a.txt")
buf := make([]byte, 10)
for {
n, _ := readFile.Read(buf)
fmt.Println(string(buf), "读取子节:", n)
if n == 0 {
break
}
}
}
```
运行结果为:
1
2
3
4
5
读取子节:
10
6
7
3 // 问题在这
4
5
读取子节:
4
6
7
3
4
5
读取子节:0
1234567都读取完后 为什么会从345再读一遍呢 buf中剩余的6个子节不是应该填充默认值么
我理解的是假设读到文件的eof位置时,还会继续读取,但奇怪的是为什么不从12开始呢
刚入坑 有些地方不太理解 还请大神赐教
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1450 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传