【Node.js24.x】Object::TextDecoderStream()メソッドの使い方
TextDecoderStreamメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
TextDecoderStreamクラスは、バイトストリームをテキストストリームに変換する機能を提供するクラスです。このクラスは、Web標準のStreams APIの一部としてNode.jsに実装されており、入ってくるバイトデータを指定された文字エンコーディング(例えばUTF-8やShift_JISなど)に基づいてデコードし、それをJavaScriptの文字列データとして出力します。
具体的には、データの書き込み側(WritableStream)と読み込み側(ReadableStream)の両方のインターフェースを持つ変換ストリーム(TransformStream)として動作します。これにより、ユーザーはバイトデータをこのストリームに書き込むと、自動的にデコードされたテキストデータが別のストリームとして利用できるようになります。
このクラスの主な目的は、ネットワークから受信したバイナリデータや、ファイルから読み込んだバイト列のような、まだ人間が読める形になっていないデータを、効率的かつストリームベースでテキストに変換することです。例えば、ウェブサーバーからのレスポンスボディや、特定のエンコーディングで書かれたテキストファイルの内容を読み込む際などに活用できます。
データが完全に揃うのを待つことなく、逐次的にデコード処理を進められるため、大量のデータを扱う場合にシステムのメモリ消費を抑えながら高いパフォーマンスを発揮します。エンコーディングの種類や、デコードエラーが発生した場合の挙動など、初期化時に設定可能なオプションを通じて、変換処理を細かく制御することが可能です。この機能により、複雑なバイトデータのテキスト変換処理を簡潔かつ堅牢に実装することができます。
構文(syntax)
1const textDecoderStream = new TextDecoderStream('utf-8', { ignoreBOM: true });
引数(parameters)
encoding = 'utf-8', options = {}
- encoding: string = 'utf-8': デコードに使用するエンコーディングを指定します。デフォルトは 'utf-8' です。
- options: object = {}: デコーダーのオプションを指定するオブジェクトです。
戻り値(return)
TextDecoderStream
TextDecoderStreamメソッドは、UTF-8エンコーディングされたバイト列を文字列にデコードするためのStream APIオブジェクトを返します。