我只是嘗試了node.js和fs包。node.js fs.readFile如何知道何時到達EOF
對於fs.readFile()中的異步IO,回調處理程序如何知道讀取程序是否已經命中EOF或僅僅耗盡了讀緩衝區大小,換出了或其他任何條件?詢問時也沒有可見的文件句柄。這是一個錯誤的節點習語嗎?
非常感謝。 迪內希
-
@Abe。所以我改變了代碼,假設我會一勞永逸地解決這個問題,但卻遇到了大文件的錯誤。但在所有其他情況下,僅僅跑了完美
"buffer.js:194
this.parent = new SlowBuffer(this.length);
^
RangeError: length > kMaxLength
at new Buffer (buffer.js:194:21)
at fs.js:225:16
at Object.oncomplete (fs.js:107:15)"
我懷疑如果EOF以外的東西發生了,那麼回調裏的'err'參數就會有東西在裏面。你是否遇到過除EOF之外的事情,並且在'err'中沒有任何內容? – 2014-10-10 21:23:11
@Abe,謝謝你的提示。正如我剛纔所說,我只是在學習節點,並且在使用它之前要理解這個野獸,所以我不必在週六晚上3點就發現問題。我修改了代碼,假設我一次完成整個事件並在一個測試用例中出現錯誤(已更新q) – Dinesh 2014-10-10 21:34:19