2 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
與你遇到了同樣的問(wèn)題,給你解釋下,Nodejs的文檔有記錄。文檔說(shuō),跟你想的恰好相反,如果你讀取的時(shí)候記錄傳入了position這個(gè)值,那么,讀取函數(shù)不會(huì)移動(dòng)文件指針,也就是,文件指針還在你上一次讀取的位置。你第一次從3字節(jié)處讀取,由于你傳入了position,文件指針不移動(dòng)。所以,再次讀取的時(shí)候,需要自己去計(jì)算postion,否則,你再次用null讀取的時(shí)候,文件指針將在上一次停留的位置繼續(xù)讀取。而如果你用null讀取,將會(huì)從當(dāng)前位置開(kāi)始讀取,length長(zhǎng)度的字節(jié),并且,重點(diǎn)了:指針會(huì)向后移動(dòng)讀取的字節(jié)數(shù),所以,當(dāng)你下次再用null讀取的時(shí)候,文件指針將會(huì)后移!
簡(jiǎn)單點(diǎn)一句話說(shuō):用null讀取的時(shí)候,read函數(shù)會(huì)移動(dòng)文件指針,這個(gè)指針由內(nèi)部維護(hù)。而如果你用position讀取,那么你的定位是絕對(duì)的,文件總是從你指定的position的位置開(kāi)始讀取,不受上一次讀取的影響。不知道我這樣說(shuō),你能不能明白。
添加回答
舉報(bào)