Node.jsでのファイル書き込み
ファイルの書き込み
Node.jsでファイルに書き込む最も簡単な方法は、fs.writeFile()
APIを使用することです。
javascript
const fs = require('node:fs')
const content = 'Some content!'
fs.writeFile('/Users/joe/test.txt', content, err => {
if (err) {
console.error(err)
} else {
// file written successfully
}
})
同期的にファイルに書き込む
あるいは、同期版のfs.writeFileSync
を使用することもできます。
javascript
const fs = require('node:fs')
const content = 'Some content!'
try {
fs.writeFileSync('/Users/joe/test.txt', content)
} catch (err) {
console.error(err)
}
fs/promises
モジュールが提供するPromiseベースのfsPromises.writeFile()
メソッドを使用することもできます。
javascript
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Some content!'
await fs.writeFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()
デフォルトでは、このAPIは、ファイルが既に存在する場合はファイルの内容を置き換えます。
フラグを指定することでデフォルトを変更できます。
javascript
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => [])
使用する可能性のあるフラグは次のとおりです。
フラグ | 説明 | ファイルが存在しない場合に作成されるか |
---|---|---|
r+ | 読み書きのためにファイルを開きます | ❌ |
w+ | 読み書きのためにファイルを開き、ストリームをファイルの先頭に配置します | ✅ |
a | 書き込みのためにファイルを開き、ストリームをファイルの末尾に配置します | ✅ |
a+ | 読み書きのためにファイルを開き、ストリームをファイルの末尾に配置します | ✅ |
フラグに関する詳細情報は、fsのドキュメントを参照してください。
ファイルへの内容の追加
ファイルに追加するのは、新しい内容でファイルを上書きしたくないが、追加したい場合に便利です。
例
ファイルの末尾にコンテンツを追加する便利なメソッドはfs.appendFile()
(とそのfs.appendFileSync()
対応物)です。
javascript
const fs = require('node:fs')
const content = 'Some content!'
fs.appendFile('file_log', content, err => {
if (err) {
console.error(err)
} else {
// done!
}
})
Promiseを使った例
fsPromises.appendFile()
の例を以下に示します。
javascript
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Some content!'
await fs.appendFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()