バッファは JavaScript の「配列」に似ていますが、1 つの違いがあります。つまり、そのサイズは一度設定されると変更できないという点です。このモジュールの共通機能は、書き込み、読み取り、比較、コピー、変換などです。指定された操作はすべて、組み込みメソッドとプロパティを使用して実行できます。
このブログでは、Node.js でのバッファーのコピー、比較、連結について簡単に説明します。
まずは「コピー」操作から始めましょう。
Node.jsでバッファをコピーするにはどうすればよいですか?
” Buffer.copy() 」メソッドを使用すると、ユーザーはあるバッファ オブジェクトを別のバッファ オブジェクトにコピーできます。このメソッドは、結果として新しく更新されたバッファを返します。このメソッドの動作は、次の構文によって異なります。
ブフ。 コピー ( ターゲットバッファ [ 、 ターゲットスタート 】 [ 、 ソーススタート 】 [ 、 ソースエンド 】 )
上記の構文によれば、「copy()」メソッドは次のパラメータを処理します。
- ターゲットバッファ : コンテンツを別のバッファ オブジェクトにコピーする必要があるバッファ オブジェクトを指定します。
- ターゲットスタート : コピー先操作を開始する位置を示します。デフォルト値は「0」です。
- ソーススタート :コピー動作を開始する位置を示します。デフォルト値は「0」です。
- ソースエンド :コピー動作が停止する終了位置を表します。デフォルト値は「バッファの終わり」です。
次のコード ブロックは、「copy()」メソッドの実際の実装を示しています。
だった buf1 = バッファ。 から ( 「123」 ) ;だった buf2 = バッファ。 割り当てる ( 3 ) ;
buf1。 コピー ( buf2 ) ;
コンソール。 ログ ( 「Buffer2 の内容は次のとおりです。」 + バフ2。 toString ( ) ) ;
上記のコード行では次のようになります。
- ” から() 」メソッドは、指定された整数を使用してバッファ オブジェクトを作成します。
- ” 割り当て() 」メソッドは、割り当てられたサイズのバッファ オブジェクトを構築します。
- ” コピー() 」メソッドは、最初のバッファーの既存のコンテンツを 2 番目のバッファー オブジェクトにコピーします。
- ” toString() ” メソッドは、コピーされたコンテンツを文字列形式 (人間が判読できる) にデコードし、それを「」メソッドを使用してコンソールに表示します。 console.log() ' 方法。
出力
指定されたコマンドを実行して「.js」ファイルを開始します。
1 つのバッファの内容が 2 番目のバッファにコピーされていることがわかります。
Node.js でバッファを比較するにはどうすればよいですか?
Node.js でバッファを比較するには、組み込みの「 Buffer.compare() ' 方法。このメソッドは 2 つのバッファを比較し、定義された差異を示す数値を標準出力として返します。これらの数値とその定義された違いを以下に示します。
- 0 : バッファは等しい。
- 1 : バッファ 1 はバッファ 2 より大きいです。
- -1 : バッファ 1 はバッファ 2 よりも低いです。
構文
ブフ。 比較する ( その他のバッファ ) ;「compare()」メソッドの構文は、必須の引数を 1 つだけサポートしています。 その他のバッファ ”。
上記で定義した構文を実際に使用してみましょう。
だった buf1 = バッファ。 から ( 「リナックス」 ) ;だった buf2 = バッファ。 から ( 「リナックス」 ) ;
だった バツ = バッファ。 比較する ( buf1 、 buf2 ) ;
コンソール。 ログ ( バツ ) ;
だった buf1 = バッファ。 から ( 「L」 ) ;
だった buf2 = バッファ。 から ( 「は」 ) ;
だった バツ = バッファ。 比較する ( buf1 、 buf2 ) ;
コンソール。 ログ ( バツ ) ;
だった buf1 = バッファ。 から ( 「は」 ) ;
だった buf2 = バッファ。 から ( 「L」 ) ;
だった バツ = バッファ。 比較する ( buf1 、 buf2 ) ;
コンソール。 ログ ( バツ ) ;
上記のコード行では次のようになります。
- ” から() 」メソッドは、指定された文字列を使用して複数のバッファ オブジェクトを作成します。
- ” 比較する() 」メソッドは、引数として渡された指定されたバッファ オブジェクトを比較します。
- ” console.log() 」メソッドは、「compare()」メソッドの結果をコンソールに表示します。
出力
以下のコマンドを使用して「.js」ファイルを実行します。
結果の出力として表示される数値は、定義された違いを明確に示しています。
次に、Node.js でのバッファーの連結に進みます。
Node.jsでバッファを連結するにはどうすればよいですか?
” concat() 」メソッドは、複数のバッファを結合するのに役立ちます。このメソッドは、配列内の対象となるすべてのバッファーの内容をマージすることで、1 つのバッファー オブジェクトに連結します。
構文
バッファ。 連結 ( 到着しました 、 長さ 】 )上記の構文は、次の 2 つのパラメータで機能します。
- 到着しました : ユーザーが連結したいバッファの配列を指定します。
- 長さ : 連結バッファの長さを示します。
次のコード スニペットは、定義された「concat()」メソッドを使用して、指定されたバッファを実際に連結します。
だった buf1 = バッファ。 から ( ' \n Linux \n ' ) ;だった buf2 = バッファ。 から ( 'Webサイト' ) ;
だった buf3 = バッファ。 連結 ( [ buf1 、 buf2 】 ) ;
コンソール。 ログ ( 「Buffer3 の内容は次のとおりです。」 + バフ3。 toString ( ) ) ;
上記のコード スニペットでは次のようになります。
- ” から() 」メソッドは、指定された文字列を持つ 2 つのバッファ オブジェクトをそれぞれ作成します。
- ” concat() 」メソッドは、配列内の指定されたバッファをバッファ オブジェクトに結合します。
- ” toString() 」メソッドは、連結されたバッファの内容を文字列形式(人間が判読できる)にデコードし、それを「」メソッドを使用してコンソールに表示します。 console.log() ' 方法。
出力
次に、以下のコマンドを実行して「.js」ファイルを実行します。
出力には、指定したバッファーの連結結果で作成される新しいバッファー オブジェクトが表示されます。
Nodejs でバッファーをコピー、比較、連結する方法について説明しました。
結論
Nodejs でバッファをコピーするには、「 Buffer.copy() 」を適用し、比較のために「 Buffer.compare() ' 方法。さらに、バッファを連結するには、「 Buffer.concat() ' 方法。これらのメソッドはすべて事前定義されており、シンプルで使いやすいです。この投稿では、Node.js でのバッファーのコピー、比較、連結について簡単に説明しました。