2011-09-24 96 views
1

我從NodeJS中的child_process.exec()中獲得一個緩衝區(並且我可以將其設置爲字符串)。我需要迭代輸出字符串的行。我將如何做到這一點?爲了避免在內存中分裂了整個事情在NodeJS中迭代字符串行

+1

被遍歷'output.split(「\\ N」)'不夠或你需要一個非阻塞處理? – 6502

+0

我意識到我可以將它分開,但我希望更高效的方式來做到這一點,因爲輸出可以有幾兆字節的大小。 – Tower

+0

@rFactor以及你已經擁有RAM中的整個緩衝區。使其更高性能的唯一方法是在流上使用線閱讀器 – Raynos

回答

9

一種方法是對其進行處理一行在同一時間

var i = 0; 
while (i < output.length) 
{ 
    var j = output.indexOf("\\n", i); 
    if (j == -1) j = output.length; 
    .... process output.substr(i, j-i) .... 
    i = j+1; 
}