tech.chakapoko.com
Home / Node.js / ファイル

[Node.js]ファイルの作成、書き込み、追記をする

ファイルの新規作成と書き込み

Node.jsではファイルの新規作成と書き込みに fs.writeFile を使います。

次のコードはtest.txtというファイルに Hello! と書き込みます。

const fs = require('fs');

fs.writeFile('test.txt', 'Hello!', function (err) {
    if (err) { throw err; }
    console.log('test.txtが作成されました');
});

fs.writeFile には同期版の fs.writeFileSync もあります。

const fs = require('fs');

fs.writeFileSync('test.txt', 'Hello!');
console.log('test.txtが作成されました');

fs.writeFile で書き込む時にはディレクトリはあらかじめ作っておく必要があります。

次のコードはtestディレクトリを最初に作ってからその下にtest.txtを書き込む例です。

const fs = require('fs');

fs.mkdir('test', (err) => {
    if (err) { throw err; }
    fs.writeFile('test/test.txt', 'Hello!', function (err) {
        if (err) { throw err; }
        console.log('test/test.txtが作成されました');
    });
});

ファイルへの追記

fs.writeFile はすでにファイルが存在する場合はそのファイルを上書きします。

上書きではなく追記をしたい時は fs.writeFile ではなく fs.appendFile を使います。

const fs = require('fs');

fs.appendFile('test.txt', 'Hello!\n', (err) => {
    if (err) throw err;
    console.log('test.txtに追記されました');
});

fs.appendFile の同期版は fs.appendFileSync です。

const fs = require('fs');

fs.appendFileSync('test.txt', 'Hello!\n');
console.log('test.txtに追記されました');

ファイルディスクリプタを使ったファイルへの書き込みと追記

上記の例では fs.writeFilefs.appendFile に対して書き込むファイルをパスで指定していましたが、ファイルディスクリプタで指定することもできます。

ファイルディスクリプたは fs.open で取得し、使い終わったら fs.close で解放します。

次のコードはファイルディスクリプタを使ったファイルへの書き込みの例です。

const fs = require('fs');

fs.open('test.txt', 'w', (err, fd) => {
    if (err) throw err;

    fs.writeFile(fd, 'Hello!\n', (err) => {
        if (err) throw err;

        console.log('test.txtに追記されました');

        fs.close(fd, (err) => {
            if (err) throw err;
        });
    });
});

次のコードはファイルディスクリプタを使ったファイルへの追記の例です。

const fs = require('fs');

fs.open('test.txt', 'a', (err, fd) => {
    if (err) throw err;

    fs.appendFile(fd, 'Hello!\n', (err) => {
        if (err) throw err;

        console.log('test.txtに追記されました');

        fs.close(fd, (err) => {
            if (err) throw err;
        });
    });
});