本文主要介紹了Go語言中文件讀寫的相關操作。
安次ssl適用于網站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
文件是什么?
計算機中的文件是存儲在外部介質(通常是磁盤)上的數(shù)據(jù)集合,文件分為文本文件和二進制文件。
os.Open() 函數(shù)能夠打開一個文件,返回一個 *File 和一個 err 。對得到的文件實例調用 close() 方法能夠關閉文件。
為了防止文件忘記關閉,我們通常使用defer注冊文件關閉語句。
Read方法定義如下:
它接收一個字節(jié)切片,返回讀取的字節(jié)數(shù)和可能的具體錯誤,讀到文件末尾時會返回 0 和 io.EOF 。 舉個例子:
使用for循環(huán)讀取文件中的所有數(shù)據(jù)。
bufio是在file的基礎上封裝了一層API,支持更多的功能。
io/ioutil 包的 ReadFile 方法能夠讀取完整的文件,只需要將文件名作為參數(shù)傳入。
os.OpenFile() 函數(shù)能夠以指定模式打開文件,從而實現(xiàn)文件寫入相關功能。
其中:
name :要打開的文件名 flag :打開文件的模式。 模式有以下幾種:
perm :文件權限,一個八進制數(shù)。r(讀)04,w(寫)02,x(執(zhí)行)01。
報錯信息如下:
[logid: 3628171316][json.err: EOF] [exception:EOF] goroutine 20521 [running]:
原因:
在請求體為json的請求中,調用了parsePostForm方法,方法大致內容如下:
在這個方法中,會讀取http的請求體。
在這里被讀取的時候,后面又重新讀取一次,之后解json
后面讀到的請求體是空的,解json的時候就會報錯EOF
總結:golang中http請求報錯eof,多半是因為多次讀取了請求體
文件夾備份導致的問題
相同路徑下package同名
bak文件夾打包, 刪除bak, 報錯消失