为了账号安全,请及时绑定邮箱和手机立即绑定

写入文件然后立即读回

写入文件然后立即读回

Go
慕尼黑的夜晚无繁华 2023-04-17 16:22:02
正如标题所说,我在读回读取之前写入的文件时遇到问题。读取恐慌EOF。我调试了各种 go 内部结构,似乎由于某种原因它无法从源读取任何内容,尽管源已同步到文件系统(通过在写入后立即停止程序并检查文件来确认cat)这是代码source, err := os.Create(DESKTOP + "/source.txt")myPanic(err)s := "Hello World\n"_, err1 := source.Write([]byte(s))myPanic(err1)source.Sync()buff := make([]byte, 56)_, err2 := source.Read(buff)myPanic(err2)e如前所述,source.Sync()没有任何效果,但关闭文件并重新打开它可以解决问题。的文档os.Create()说明文件是用创建的O_RDWR,这对我来说表明以这种方式使用文件是可以的。我想我一路上错过了什么。只是为了完整起见:这个例子不是我遇到的原始问题,只是我研究后想出的最简单的案例。最初我想复制os.Copy创建一个空目标文件的源文件。
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

你在文件的末尾,所以从那里读取不会返回任何新数据。寻找文件的开头:

source.Seek(0, io.SeekStart)


查看完整回答
反对 回复 2023-04-17
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信