[英]Remove line from file without mutating the buffer variable in node js
我是Nodejs的新手
我編寫了一個函數,該函數從文件讀取內容並將其存儲為數組形式的變量。 最后,我將變量變異並將其寫入文件。 見下文:
function(file, item) {
return fs.readLine(file).then(function(contents) {
var data = contents.split(/\n/);
data.splice(data.indexOf(item), 1);
return fs.writeFile(file, data.join(/\n/));
});
}
有沒有一種方法可以做到這一點而無需更改變量,甚至不必將文件內容存儲到變量中並在節點js中將其刪除?
謝謝
如果您不想使用data.splice()
對變量進行變異,則可以使用不會對原始數組進行變異的data.slice()
。 參見文檔:
另外,您可以創建可讀的流並過濾掉不需要的行,而不是將文件的內容讀入變量。
查看我如何創建filt
標准輸入行的filt
模塊:
源代碼和許多示例在GitHub上:
基本上,您可以在這里執行以下操作-使用方便的split
模塊-如下所示:
fs.createReadStream(file).pipe(split()).on('data', (line) => {
// if line is something ... etc.
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.