Node.js でバッファーをコピー、比較、連結するにはどうすればよいですか?

Node Js Debaffawokopi Bi Jiao Lian Jiesurunihadousurebayoidesuka



バッファは、特定のメモリに一時的に保存されるバイナリ データのコレクションです。その主な目的は、保存されたバイナリ データを管理し、ある場所から別の場所に転送することです。 Node.js では、ユーザーは組み込みの「バッファ」モジュールを使用して特定のメモリにアクセスできます。

バッファは 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」ファイルを開始します。

ノードアプリ。 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」ファイルを実行します。

ノードアプリ。 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」ファイルを実行します。

ノードアプリ。 js

出力には、指定したバッファーの連結結果で作成される新しいバッファー オブジェクトが表示されます。

Nodejs でバッファーをコピー、比較、連結する方法について説明しました。

結論

Nodejs でバッファをコピーするには、「 Buffer.copy() 」を適用し、比較のために「 Buffer.compare() ' 方法。さらに、バッファを連結するには、「 Buffer.concat() ' 方法。これらのメソッドはすべて事前定義されており、シンプルで使いやすいです。この投稿では、Node.js でのバッファーのコピー、比較、連結について簡単に説明しました。