我嘗試逐行讀取文件,並使用Node.js將其輸出到另一個文件。Node.js讀取和寫入文件行
我的問題是由於Node.js的異步性質,有時會混淆的線序列。
例如我的輸入文件是這樣的: 線1 線2 線3
但輸出文件可以是這樣的: 線1條 線3 線2
下面是我的代碼。
var fs = require("fs");
var index = 1;
fs.readFileSync('./input.txt').toString().split('\n').forEach(
function (line) {
console.log(line);
fs.open("./output.txt", 'a', 0666, function(err, fd) {
fs.writeSync(fd, line.toString() + "\n", null, undefined, function(err, written) {
})});
}
);
任何想法,將不勝感激,謝謝。
它是安全的混合同步和fs函數的異步版本,但是您仍然必須以正確的順序設置回調 – 2012-08-16 12:41:04
@AndreySidorov對於初學者來說,更容易不混合同步代碼和異步代碼,並選擇單一方法。例如,OP以異步方式打開文件(這樣就不會保留對「open」的調用順序),但由於某種原因,它使用同步版本的「write」。 – penartur 2012-08-16 12:47:29