正如標(biāo)題所說,我在讀回讀取之前寫入的文件時遇到問題。讀取恐慌EOF。我調(diào)試了各種 go 內(nèi)部結(jié)構(gòu),似乎由于某種原因它無法從源讀取任何內(nèi)容,盡管源已同步到文件系統(tǒng)(通過在寫入后立即停止程序并檢查文件來確認(rèn)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()沒有任何效果,但關(guān)閉文件并重新打開它可以解決問題。的文檔os.Create()說明文件是用創(chuàng)建的O_RDWR,這對我來說表明以這種方式使用文件是可以的。我想我一路上錯過了什么。只是為了完整起見:這個例子不是我遇到的原始問題,只是我研究后想出的最簡單的案例。最初我想復(fù)制os.Copy創(chuàng)建一個空目標(biāo)文件的源文件。
1 回答

慕森王
TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個贊
你在文件的末尾,所以從那里讀取不會返回任何新數(shù)據(jù)。尋找文件的開頭:
source.Seek(0, io.SeekStart)
- 1 回答
- 0 關(guān)注
- 127 瀏覽
添加回答
舉報
0/150
提交
取消