Node.js ファイル システム操作を操作する場合、ファイルを書き込む適切な方法を選択すると、アプリケーションのパフォーマンスに大きな影響を与える可能性があります。 fs.createWriteStream() と fs.writeFileSync() という 2 つの一般的なアプローチを見てみましょう。
Feature | fs.createWriteStream(path).write(buffer) | fs.writeFileSync(path, buffer) |
---|---|---|
Synchronicity | Asynchronous | Synchronous |
Blocking | Non-blocking | Blocking |
Performance | Better for large files or frequent writes | Better for small, infrequent writes |
Memory Usage | More memory-efficient for large files | Loads entire content into memory |
Error Handling | Requires callback or event listeners | Throws errors directly |
Use Case | Streaming large files, real-time data | Quick, simple writes, small files |
Control Flow | Continues execution immediately | Waits until write is complete |
Backpressure Handling | Handles backpressure automatically | N/A |
ストリームベースのアプローチは、大きなファイルを処理する場合や、データを頻繁に書き込む必要がある場合に最適です。
const fs = require('fs') // Content to write const content = 'Hello, Node.js file system!' // Create a write stream const writeStream = fs.createWriteStream('example1.txt') // Write to the file writeStream.write(content, 'UTF8') // End the stream writeStream.end() // Handle finish event writeStream.on('finish', () => { console.log('Write completed.') }) // Handle error event writeStream.on('error', (err) => { console.error('An error occurred:', err.message) }) console.log('Program continues executing immediately.')
小さなファイルを使用した単純な 1 回限りの書き込みの場合は、同期アプローチの方が簡単な場合があります。
const fs = require('fs') // Content to write const content = 'Hello, Node.js file system!' try { // Write to the file synchronously fs.writeFileSync('example2.txt', content, 'UTF8') console.log('Write completed.') } catch (err) { console.error('An error occurred:', err.message) } console.log('This line waits for the write operation to complete.')
どちらのメソッドも Node.js 開発に適しています。 createWriteStream は大きなファイルや頻繁な書き込みを伴うシナリオに最適ですが、writeFileSync は単純な小さなファイル操作に最適です。ファイル サイズ、書き込み頻度、パフォーマンス要件などの要素を考慮して、特定のユースケースに基づいて選択してください。
以上がNode.js ファイルの書き込み方法 - createWriteStream と writeFileSyncの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。