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