このガイドでは、Node.js での書き込み可能なストリームの操作について説明します。
Node.js で書き込み可能なストリームを操作するには?
” 書き込み可能 」ストリームを使用して、ファイルに新しいデータを挿入したり、別のランダム ストリームのコンテンツを配置したりできます。データの変換または配置は、ほとんどの場合、「」の助けを借りて行われます。 パイプ() ' 方法。この方法により、データの衝突の可能性を減らしながら、コンテンツの変換と割り当てのプロセスがより便利になります。
構文
書き込み可能なストリームは、以下のメソッドを呼び出すことで作成されます。
fs. 作成書き込みストリーム ( 'ターゲットファイル.ext' ) ;
上記の構文では、「 creatWriteStream() ” は、インポートされた “ のオブジェクトによって呼び出されます。 fs ” モジュールにアクセスし、データが書き込まれるファイルがパラメーターとして渡されます。
Node.js の書き込み可能なストリームの例をいくつか見てみましょう。
例 1: 書き込み可能なストリームを使用して別のファイルのコンテンツを書き込む
以下の例では、ランダム ファイルが読み取り可能なストリーム経由で送信され、このファイルのコンテンツが書き込み可能なストリームで使用可能な別のファイルに配置されます。
fsObjでした = 必要とする ( 「fs」 ) ;
定数 データストリーム = fsObj. 作成読み取りストリーム ( 'mynewfile1.txt' ) ;
定数 ライトストリーム = fsObj. 作成書き込みストリーム ( 「mynewfile2.txt」 ) ;
データストリーム。 パイプ ( ライトストリーム ) ;
上記のコードの説明:
- まず、「 fs ” モジュールがインポートされ、そのオブジェクトが新しい “ fsObj ' 変数。
- 次に、「」の助けを借りて、 ファスオブジェクト 「」を呼び出します createReadStream() 」メソッドを使用して読み取り可能なストリームを作成し、選択した読み取り可能なファイルをそのパラメーターとして渡します。
- 次に、「」を呼び出して書き込み可能なストリームが作成されます。 createWriteStream() 」メソッドを使用して、提供されたファイルにコンテンツを書き込みます。
- 上記で呼び出したメソッドの結果を「」に保存します。 データストリーム ' そして ' ライトストリーム ” 変数をそれぞれ指定します。
- 最後に、「」を呼び出します。 パイプ() ” メソッドの後に” データストリーム ” で先頭に立つ ライトストリーム ”変数。
次に、以下のコマンドを実行して、含まれているファイル (controlFlow.js) を実行します。
例 2: 「stream.write()」メソッドを使用してコンテンツをファイルに書き込む
この例では、「 書く() 」メソッドは、書き込み可能なストリーム経由で利用可能なファイルにデータを書き込むために使用されます。
fsObjでした = 必要とする ( 「fs」 ) ;定数 httpオブジェクト = 必要とする ( 「http」 ) ;
定数 地元で奉仕する = httpオブジェクト。 サーバーの作成 ( ( リクエスト、レスポンス ) => {
試す {
定数 セルストリーム = fsObj. 作成書き込みストリーム ( 「mynewfile2.txt」 ) ;
セルストリーム。 書く ( 「対象のファイルに配置されるデータ。」 ) ;
セルストリーム。 終わり ( ) ;
応答。 終わり ( 「書き込み可能なストリーム経由で書き込まれたデータ」 )
}
キャッチ ( エラー ) {
コンソール。 エラー ( エラー ) ;
}
} ) ;
地元で奉仕します。 聞く ( 8080 、 ( ) => {
コンソール。 ログ ( 'サーバーはローカルホストのポート番号: '8080' で実行されています ' )
) ;
上記のコードの説明は次のとおりです。
- まず、必要な「 fs ' そして ' http ” モジュールを作成し、そのオブジェクトを ” に保存します fsObj ' そして ' httpオブジェクト ” 変数をそれぞれ指定します。
- 次に、「」を呼び出してサーバーが作成されました。 createServer() 」メソッドを使用し、この新しく作成されたサーバーを「 地元で奉仕する ' 変数。
- 次に、「」を使用します。 試す メソッド コールバック関数内の ” ブロックを呼び出して、” createWriteStream() 」を使用した方法 fsObj ' 変数。
- コンテンツを挿入する必要がある対象のファイルをこのメソッドの括弧内に渡し、結果を「 セルストリーム ' 変数
- 「」を活用してください。 書く() 」メソッドをこの変数で実行し、ターゲットのファイルに書き込まれるダミーメッセージを括弧内に渡します。
- 「」を呼び出してストリームを閉じます。 終わり() 」メソッドを呼び出し、Web ページ上に成功メッセージを表示します。 応答.end() ' 方法。どこ ' 応答 ” は、” のコールバック パラメータです。 サーバーの作成 ' 方法。
- 「」を活用してください。 キャッチ ” ブロックを使用して、発生したエラーを処理します。
- 最後に、ポート番号を介してサーバーをリッスンまたはセットアップします。 8080 」とコールバック関数を使用して成功メッセージを表示します。
生成された出力は、提供されたテキストが「 書く() ' 方法:
例 3: 同じデータを複数のファイルに書き込む
この例では、「」を使用して単一のファイルがストリームから読み取られます。 createReadStream() ' 方法。そして、読み取った内容を「」を使って複数のファイルに上書きします。 createWriteStream() ' そして ' 。パイプ() 」の方法:
fsObjでした = 必要とする ( 「fs」 ) ;定数 データストリーム = fsObj. 作成読み取りストリーム ( 'mynewfile1.txt' ) ;
定数 writeStream1 = fsObj. 作成書き込みストリーム ( 「mynewfile2.txt」 ) ;
定数 writeStream2 = fsObj. 作成書き込みストリーム ( 「ユースケース.txt」 ) ;
データストリーム。 パイプ ( writeStream1 ) ;
データストリーム。 パイプ ( writeStream2 ) ;
上記のコード スニペットでは次のようになります。
- ” createReadStream() 」メソッドが呼び出され、コンテンツを読み取る必要があるファイルがパラメータとして渡されます。このメソッドの結果は「」に保存されます。 データストリーム ' 変数。
- 次に、「 createWriteStream() ” メソッドが呼び出され、対象のファイルがパラメータとして渡されます。
- 同様に、2 番目のファイルのパスも書き込み可能なストリームとして渡され、結果は「 writeStream1 ' そして ' writeStream2 ”変数。
- その後、「」を使用して、 。パイプ() ” メソッドに保存されているコンテンツを取得します。 データストリーム ” 変数が” に代入されます。 writeStream1 ' そして ' writeStream2 ”変数。
生成された出力は、提供されたファイルのコンテンツがストリーム経由で提供されたファイルに挿入されたことを示しています。
Node.js での書き込み可能なストリームの動作については以上です。
結論
書き込み可能なストリームを操作するには、「 createWriteStream() ” は、” 経由で呼び出されます。 fs ”モジュールオブジェクト。コンテンツを書き込む必要がある対象のファイル パスがパラメータとして渡されます。別のストリームからコンテンツを書き込むには、「 。パイプ() 」という手法が活用されています。 ” 書く() 」メソッドは、対象のファイルにコンテンツを直接書き込む場合にも役立ちます。この投稿では、書き込み可能なストリームを操作する手順を説明しました。