go - 从新创建的文件中读取
问题描述
我想在新创建的文件上写一些东西
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
f, _ := os.Create("temp.txt")
contents := "some stuff..."
f.WriteString(contents) // <--------
f.Sync()
//f.Close()
//f, _ = os.Open("temp.txt")
b, _ := ioutil.ReadAll(f)
fmt.Println(string(b)) // <--------
}
但是在写了一些东西然后阅读之后,最后一行什么也没打印。为什么?
如果我取消注释上面的这两行,一切正常!
解决方案
当您读取或写入文件时,您会移动当前位置,因此它会从您离开的位置继续读取/写入。只有一个位置,所以如果你先写然后读,你会在写完之后从剩下的地方开始读。
用于f.Seek(0,0)
在写入后将位置移动到文件的开头。
推荐阅读
- python - 我怎样才能使列表中的每个项目延迟发生?
- python - 如何将字符串添加到文件中的奇数行?
- javascript - 防止内表在嵌套 Html 表中过滤
- python - 集群内的集群是嵌套集群的数据表的多类集群
- java - 由于 android studio 和 adb.exe 的更新,我无法运行我的程序
- javascript - 对于托管在 firebase 托管和 firebase 函数上的相同代码,返回值是一天后
- sql-server - 如何从 SQL Server 的一个表中的一个查询中更新具有多个值的列的值?
- linux - 在 Vala & Gtk3 中制作透明窗口的简单方法?
- python - 调整内容大小时 QGridLayout 不更新?
- google-cloud-platform - 安装 docker 并在 VM 上使用它的正确方法是什么?