課程
/后端開發
/Go
/Go并發編程案例解析
出錯了出錯了,注釋掉就沒事了,centos 7.0
讀取時err會等于EOF
2018-04-23
源自:Go并發編程案例解析 2-3
正在回答
我這里正常,具體報什么錯?把錯誤信息貼出來唄。
最后一個字節吧
如果一開始有數據? seek直接讀取到末尾如果文件為空需要先將\n讀取
小月肖 提問者
麥可同學 回復 小月肖 提問者
小月肖 提問者 回復 麥可同學
我一開始文件里面是有數據的
A_小穎
這是正常的把,err==io.EOF 是處理文件到末尾的情況,然后再需要等待日志繼續產生。
func?(r?*ReadFromFile)?Read(rc?chan?[]byte)?{ ???//讀取數據 ???f,?err?:=?os.Open(r.path) ???if?err?!=?nil?{ ??????panic(fmt.Sprintf("open?file?fail:%s",?err.Error())) ???} ???//從文件末尾逐行讀取文件內容 ???f.Seek(0,?2) ???rd?:=?bufio.NewReader(f) ???for?{ ??????line,?err?:=?rd.ReadBytes('\n') ??????if?err?==?io.EOF?{ ?????????log.Println(err) ?????????time.Sleep(500?*?time.Millisecond) ?????????continue ??????}?else?if?err?!=?nil?{ ?????????panic(fmt.Sprintf("ReadBytes?error:?%s",?err.Error())) ??????} ??????rc?<-?line[:len(line)-1] ???} }
如果注釋不
f.Seek(0,?2)
則直接在
line,?err?:=?rd.ReadBytes('\n')
err==io.EOF
舉報
課程帶你通過一個真實的線上日志監控系統學習Golang以及并發的編程思想。
1 回答2-3 節代碼,我的什么沒輸出呢,老鐵們幫忙看下??
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-04-23
我這里正常,具體報什么錯?把錯誤信息貼出來唄。
2018-06-10
最后一個字節吧
2018-04-23
如果一開始有數據? seek直接讀取到末尾如果文件為空需要先將\n讀取
2018-04-23
我一開始文件里面是有數據的
2018-04-23
這是正常的把,err==io.EOF 是處理文件到末尾的情況,然后再需要等待日志繼續產生。
2018-04-23
如果注釋不
則直接在
err==io.EOF