2015-05-25 33 views
1

我在Node.js中編寫了一個程序(在某些情況下)要充當一個簡單的過濾器:從標準輸入讀取所有內容(直到文件結尾),執行一些處理,編寫結果到標準輸出。閱讀stdin的所有文本

你如何做'讀取標準輸入的所有內容'部分?到目前爲止,我發現的最接近的解決方案似乎可以一次從控制檯一行工作,或者只在標準輸入文件不是管道時才起作用。

回答

6

get-stdin會做的伎倆。


在您的問題中的行之間讀取幾個筆記。

既然您標記了問題「同步」,我只會注意到stdin在node.js中是僅異步的。上面的庫是最簡單的。它會將整個輸入作爲字符串或緩衝區處理。

如果可能的話,用流式編寫程序是最好的,但是一些用例可用於流式傳輸(即字數),有些則不可用(即反轉輸入)。

此外,「從控制檯一次一行」是終端緩衝您的擊鍵的人工產物。如果你想要一些「我很抱歉,我問」級詳細檢查出驚人的the TTY Demystified

-1

這也適用,使用新的API streams2

var fs = require("fs"); 

var readStream = fs.createReadStream('./Ip.txt'); 

readStream.on("readable", function(){ 
    var buf = readStream.read(); 
    console.log(buf.toString()); 
}) 
+1

完全題外話,問題是明確有關管道閱讀下載標準輸入,不讀文件。 –