我在Node.js中編寫了一個程序(在某些情況下)要充當一個簡單的過濾器:從標準輸入讀取所有內容(直到文件結尾),執行一些處理,編寫結果到標準輸出。閱讀stdin的所有文本
你如何做'讀取標準輸入的所有內容'部分?到目前爲止,我發現的最接近的解決方案似乎可以一次從控制檯一行工作,或者只在標準輸入文件不是管道時才起作用。
我在Node.js中編寫了一個程序(在某些情況下)要充當一個簡單的過濾器:從標準輸入讀取所有內容(直到文件結尾),執行一些處理,編寫結果到標準輸出。閱讀stdin的所有文本
你如何做'讀取標準輸入的所有內容'部分?到目前爲止,我發現的最接近的解決方案似乎可以一次從控制檯一行工作,或者只在標準輸入文件不是管道時才起作用。
get-stdin會做的伎倆。
在您的問題中的行之間讀取幾個筆記。
既然您標記了問題「同步」,我只會注意到stdin在node.js中是僅異步的。上面的庫是最簡單的。它會將整個輸入作爲字符串或緩衝區處理。
如果可能的話,用流式編寫程序是最好的,但是一些用例可用於流式傳輸(即字數),有些則不可用(即反轉輸入)。
此外,「從控制檯一次一行」是終端緩衝您的擊鍵的人工產物。如果你想要一些「我很抱歉,我問」級詳細檢查出驚人的the TTY Demystified。
這也適用,使用新的API streams2
var fs = require("fs");
var readStream = fs.createReadStream('./Ip.txt');
readStream.on("readable", function(){
var buf = readStream.read();
console.log(buf.toString());
})
完全題外話,問題是明確有關管道閱讀下載標準輸入,不讀文件。 –