Node.js ファイル追記 解説
Node.jsでファイルに追記する
JavaScript、Node.js、fsモジュール
Node.jsでファイルに追記するには、fs
モジュールを使用します。このモジュールは、ファイルシステムへの読み書き操作を提供します。
追記方法
- fsモジュールのインポート
const fs = require('fs');
- ファイルを開く
fs.appendFile('filename.txt', '追加するテキスト', (err) => { if (err) throw err; console.log('追加が完了しました'); });
filename.txt
: 追記するファイル名です。追加するテキスト
: ファイルに追加するテキストです。(err) => { ... }
: ファイル操作が完了した後に実行されるコールバック関数です。エラーが発生した場合、err
にエラーオブジェクトが格納されます。
追記の説明
- エラーが発生した場合、コールバック関数が実行され、エラーオブジェクトが渡されます。
- 追記が成功すると、コールバック関数が実行されます。
- ファイルが存在しない場合は、新しいファイルが作成されます。
fs.appendFile
メソッドは、指定されたファイルにテキストを追記します。
追記の例
const fs = require('fs');
fs.appendFile('log.txt', '新しいログを追加します\n', (err) => {
if (err) throw err;
console.log('ログが追加されました');
});
このコードでは、log.txt
ファイルに新しいログメッセージを追加します。
注意
- エラーが発生した場合、適切なエラー処理を実装してください。
- ファイルが存在しない場合、自動的に作成されます。
- ファイル操作は非同期処理であるため、コールバック関数を使用して結果を処理する必要があります。
例1: 基本的な追記
const fs = require('fs');
fs.appendFile('filename.txt', '追加するテキスト', (err) => {
if (err) throw err;
console.log('追加が完了しました');
});
- 追記が成功すると、コンソールに「追加が完了しました」と表示します。
- エラーが発生した場合、エラーを投げます。
fs.appendFile
メソッドを使用して、filename.txt
ファイルに「追加するテキスト」を追記します。
例2: 複数行の追記
const fs = require('fs');
const textToAdd = `
新しい行1
新しい行2
新しい行3
`;
fs.appendFile('filename.txt', textToAdd, (err) => {
if (err) throw err;
console.log('複数行が追加されました');
});
- 複数行のテキストを
textToAdd
変数に格納します。
例3: 非同期処理の利用
const fs = require('fs');
fs.appendFile('filename.txt', '追加するテキスト', (err) => {
if (err) {
console.error('エラーが発生しました:', err);
} else {
console.log('追加が完了しました');
}
});
console.log('他の処理が実行されます');
- エラーが発生した場合、エラーメッセージを表示します。
fs.appendFile
メソッドは非同期処理であるため、コールバック関数が実行される前に他の処理が実行されます。
例4: Promiseの利用
const fs = require('fs');
const util = require('util');
const appendFileAsync = util.promisify(fs.appendFile);
async function appendToFile() {
try {
await appendFileAsync('filename.txt', '追加するテキスト');
console.log('追加が完了しました');
} catch (err) {
console.error('エラーが発生しました:', err);
}
}
appendToFile();
async/await
構文を使用して、非同期処理を同期的に記述します。util.promisify
を使用して、fs.appendFile
メソッドをPromiseに変換します。
fs.writeFileメソッドの使用
fs.writeFile
メソッドは、ファイルの内容を書き換えます。既存のファイルが存在する場合、その内容を上書きします。ファイルが存在しない場合は、新しいファイルを作成します。
const fs = require('fs');
fs.writeFile('filename.txt', '追加するテキスト', (err) => {
if (err) throw err;
console.log('追加が完了しました');
});
fs.createWriteStreamメソッドの使用
fs.createWriteStream
メソッドは、ファイルへの書き込みストリームを作成します。このストリームを使用して、ファイルにデータを書き込むことができます。
const fs = require('fs');
const writeStream = fs.createWriteStream('filename.txt', { flags: 'a' });
writeStream.write('追加するテキスト');
writeStream.end();
flags: 'a'
オプションは、ファイルに追記するモードを指定します。
fs.promisesモジュールの使用
fs.promises
モジュールは、fs
モジュールのメソッドをPromiseベースで提供します。これにより、非同期処理をより簡潔に記述することができます。
const fs = require('fs').promises;
async function appendToFile(filename, text) {
try {
await fs.appendFile(filename, text);
console.log('追加が完了しました');
} catch (err) {
console.error('エラーが発生しました:', err);
}
}
appendToFile('filename.txt', '追加するテキスト');
streamモジュールの使用
stream
モジュールを使用して、ファイルへの書き込みをより柔軟に制御することができます。
const fs = require('fs');
const readableStream = fs.createReadStream('input.txt');
const writableStream = fs.createWriteStream('output. txt', { flags: 'a' });
readableStream.pipe(writableStream);
- このコードは、
input.txt
ファイルの内容をoutput.txt
ファイルに追記します。
javascript node.js fs