ホームページ > ウェブフロントエンド > jsチュートリアル > Node.js ファイルの書き込み方法 - createWriteStream と writeFileSync

Node.js ファイルの書き込み方法 - createWriteStream と writeFileSync

Barbara Streisand
リリース: 2025-01-10 18:30:45
オリジナル
680 人が閲覧しました

Node.js File Writing Methods - createWriteStream vs writeFileSync

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

createWriteStreamの使用

ストリームベースのアプローチは、大きなファイルを処理する場合や、データを頻繁に書き込む必要がある場合に最適です。

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.')
ログイン後にコピー

主な利点 ?

  • ノンブロッキング操作
  • 大きなファイルに対するメモリ効率の向上
  • 自動バックプレッシャー処理
  • リアルタイムデータ処理に最適

writeFileSync の使用

小さなファイルを使用した単純な 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.')
ログイン後にコピー

主な利点 ?

  • try-catch による簡単なエラー処理
  • 予測可能な実行フロー
  • 構成ファイルまたは小規模なデータの書き込みに最適です
  • コールバック管理は必要ありません

各方法をいつ使用するか

次の場合に createWriteStream を選択します。

  • 大きなファイルの操作
  • リアルタイム データ ストリームの処理
  • メモリ効率は非常に重要です
  • ノンブロッキング操作が必要です

次の場合に writeFileSync を選択します。

  • 小さな構成ファイルの作成
  • シンプルな 1 回限りの書き込み
  • 同期操作は許容されます
  • スタートアップ構成の操作

結論

どちらのメソッドも Node.js 開発に適しています。 createWriteStream は大きなファイルや頻繁な書き込みを伴うシナリオに最適ですが、writeFileSync は単純な小さなファイル操作に最適です。ファイル サイズ、書き込み頻度、パフォーマンス要件などの要素を考慮して、特定のユースケースに基づいて選択してください。

以上がNode.js ファイルの書き込み方法 - createWriteStream と writeFileSyncの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート