2
我對節點的fs模塊中的readStream有一個簡單的問題。 下面是簡單的代碼:CreateReadStream在塊中創建額外的換行符分隔符?
fs = require('fs');
readStream = fs.createReadStream('somefile.d');
readStream.on('data', function(chunk) {
console.log(chunk.toString());
});
'somefile.d' 是:
a1
a2
a3
a4
問題: 爲什麼會出現在輸出的末尾額外的換行符?我嘗試了一個od -c來獲得一個八進制轉儲,是的,還有一個額外的換行符。這是由toString放? 更重要的是,爲什麼塊被換行符分隔了?每行都會觸發數據事件。我沒有指定任何選項,也沒有選項可讀取由任何特定字符分隔的塊。例如,我知道有carrier模塊來解決此問題。
任何解釋將不勝感激。
〜
〜
〜
這完全說明了第一部分。我接受你的答案,因爲我剛剛錯過了關於console.log最後發出換行符的那個簡單點。但是這並不能解釋爲什麼要閱讀塊,一次一行,我的意思是換行符分隔。在節點的流式傳輸模塊中沒有這樣的塊定義,沒有什麼可以指定不同的分隔符。在這種情況下,我瞭解在我的查詢中鏈接到的「運營商」模塊的實用性。請欣賞關於這一點的解釋... – Sam
不,afaik大塊是一些字節數,沒有分隔。我對你沒有另外的解釋。 – Paul
謝謝。我認爲如果沒有指定大小,它會大塊,直到它看到一個換行符。我猜... – Sam