我尝试逐行读取文件,并使用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