node.jsでファイルを書く

提供: Node.js/JavaScript入門
移動: 案内検索
スポンサーリンク

node.jsでファイルを書き込む方法を紹介します。

概要

ファイルの読み書きには、fsモジュールを使用します。用意されいてる関数は、Unixのファイル操作のシステムコールに似た名前、引数です。

ファイルシステムの関数には、同期と非同期があります。 同期の関数は、関数名にSyncがついています。 実行の順番を保証する必要がないのであれば、「非同期」を利用するべきです。

writeFileで書く

writefile.js

/*
 * writefile.js
 * Copyright (C) 2014 kaoru <kaoru@bsd>
 */
var fs = require('fs');
var data = "This is node.js program\n";
var file = 'test.txt';
fs.writeFile(file, data, function(err) {
        if (err) { throw err; }
        console.log ('Save');
});

実行例

$ node writefile/writefile.js
Save

非同期writeFileSyncで書く

writefile_sync.js

/*
 * writefile_sync.js
 * Copyright (C) 2014 kaoru <kaoru@bsd>
 */
var fs = require('fs');
var data = "This is node.js program\n";
var file = 'writefile_sync.txt';
 
try {
        fs.writeFileSync(file, data, null, function(err) {
                if (err) {
                        console.log(err);
                        return;
                }
                console.log ('Save');
        });
 
        var data2 = "Append line\n";
        fs.appendFileSync(file, data2, null, function(err) {
                if (err) {
                        console.log(err);
                        return;
                }
                console.log ('Save');
        });
 
} catch (e) {
        console.log(e);
}

こういう書き方もできます。

/*
 * writefile_sync.js
 * Copyright (C) 2014 kaoru <kaoru@bsd>
 */
var fs = require('fs');
var data = "This is node.js program\n";
var file = 'writefile_sync.txt';
fs.writeFileSync(file, data);

実行例

$ node writefile/writefile_sync.js
$ cat writefile_sync.txt
This is node.js program
Append line

openで開いてwriteで書く

fs_open1.js

/*
 * fs_open1.js
 * Copyright (C) 2014 kaoru <kaoru@bsd>
 */
var fs = require('fs');
var file = 'fs_open1.txt';
var flag = 'w+';
var mode = 0644;
var data = "This is data\n";
fs.open(file, flag, mode, function(err,fd){
        if (err) {
                console.log(err);
                return;
        }
        var buf = new Buffer(data);
        fs.write(fd, buf, 0, buf.length, null, function(err, written, buffer){
                if (err) {
                        console.log(err);
                }
                console.log("written=" + written);
                fs.close(fd);
        });
});

実行例

$ node writefile/fs_open1.js
written=13

関連項目




スポンサーリンク