ファイルの新規作成と書き込み
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.writeFile
や fs.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;
});
});
});