ファイルを1行ずつ読み込み、Node.jsを使って別のファイルに出力しようとしました。Node.jsファイル行を読み書きする
私の問題は、Node.jsの非同期性のために時々混乱してしまうことです。
例えば、私の入力ファイルのようである:1 ライン2 ライン3
が、出力ファイルは可能性があり 行のような:以下は2
ライン1 ライン3 ラインは私のコードです。
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関数の同期と非同期のバージョンがありますが、正しい順序でコールバックを設定する必要があります –
@AndreySidorov初心者にとっては、同期コードと非同期コードを混ぜたり、単一の方法を選択したりする方が簡単です。例えば、OPはファイルを非同期的に開きます( 'open'への呼び出しの順序は保持されません)。何らかの理由で' write'の同期バージョンを使用します。 – penartur