ホームページ  >  記事  >  WeChat アプレット  >  WeChat アプレットのバッファの例の詳細な説明

WeChat アプレットのバッファの例の詳細な説明

黄舟
黄舟オリジナル
2017-09-13 10:51:032850ブラウズ

この記事は主に、WeChat アプレットのバッファ バッファの詳細な説明に関する関連情報を紹介します。必要な友人は参照してください

WeChat アプレットのバッファ バッファの詳細な説明

JavaScript 言語自体には、文字列データ型であり、バイナリ型のデータはありません。

ただし、TCP やファイル ストリームなどのストリームを処理する場合は、バイナリ データを使用する必要があります。そのため、Node.js では、バイナリ データを格納するための専用のバッファ領域を作成するために使用される Buffer クラスが定義されています。

node.js では、Buffer クラスは Node カーネルとともにリリースされるコア ライブラリです。バッファ ライブラリは、生データを Node.js に保存する方法を提供し、Node.js での I/O 操作中に移動されたデータを処理する必要があるときはいつでも、Node.js でバッファ ライブラリを使用できるようにします。 。生データは Buffer クラスのインスタンスに保存されます。バッファは整数配列に似ていますが、V8 ヒープ メモリの外側にある生のメモリの一部に対応します。

バッファの作成


1.长度为10的实例
var buf = new Buffer(10)
2.通过给定的数组创建
var buf = new Buffer([10,20,30,40,50])
3.通过字符串创建
var buf = new Buffer("www.csdn.net","utf-8")
utf-8 是默认的编码方式
支持以下编码:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"。

Writebuffer.write()


var buf = new Buffer(200)
var len = buf.write("www.csdn.net")
console.log("写入字节数:" + len)
  • string - バッファに書き込まれる文字列。

  • offset - バッファへの書き込みが開始されるインデックス値、デフォルトは 0 です。

  • length - 書き込まれたバイト数、デフォルトはbuffer.length

  • encoding - 使用されるエンコーディング。デフォルトは 'utf8' です。

キャッシュ read.toString()


buf = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
 buf[i] = i + 97;
}

console.log( buf.toString(&#39;ascii&#39;));    // 输出: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString(&#39;ascii&#39;,0,5));  // 输出: abcde
console.log( buf.toString(&#39;utf8&#39;,0,5));  // 输出: abcde
console.log( buf.toString(undefined,0,5)); // 使用 &#39;utf8&#39; 编码, 并输出: abcde
  1. encoding - 使用されるエンコーディング。デフォルトは 'utf8' です。

  2. start - 読み取りを開始するインデックス位置を指定します。デフォルトは 0 です。

  3. end - 終了位置、デフォルトはバッファーの最後です。

Buffer to JSON


var buf = new Buffer(&#39;www.runoob.com&#39;);
var json = buf.toJSON(buf);
console.log(json);

Consolidation Buffer.concat([,])


var buf = new Buffer("北京")
var buf1 = new Buffer("上海")
var buf2 = Buffer.concat([buf,buf1],12)
console.log(buf2.toString())
  • listは、Bufferオブジェクト配列リストをマージするために使用されます。

  • totalLength は、マージされた Buffer オブジェクトの合計の長さを指定します。

Compare.compare(otherBuffer)

Node.js v0.12.2バージョンで導入されました


var buffer1 = new Buffer("AVCX")
var buffer2 = new Buffer("ACVV")

var result = buffer1.compare(buffer2)

if(result < 0) {
  console.log(buffer1 + " 在 " + buffer2 + "之前");
}else if(result == 0){
  console.log(buffer1 + " 与 " + buffer2 + "相同");
}else {
  console.log(buffer1 + " 在 " + buffer2 + "之后");
}

Copy.compare(buffer2)


buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])
  1. targetBuffer - 予定コピーされたバッファオブジェクト。

  2. targetStart - 数値、オプション、デフォルト: 0

  3. sourceStart - 数値、オプション、デフォルト: 0

  4. sourceEnd - 数値、オプション、デフォルト:buffer.length


var buf1 = new Buffer("beiJing")
var buf2 = new Buffer(8)
buf1.copy(buf2)
console.log("buf2 content:"+buf2.toString())
E裁 Cut .slice (buffer2)


buf.slice([start[, end]])
e

  1. start -Number、オプション、デフォルト: 0

  2. end -number、オプション、デフォルト:buffer.length

戻り値

古いバッファと同じメモリを指す新しいバッファを返しますが、インデックスの開始から終了までが切り取られます。



var buf1 = new Buffer("beiJing")
var buf2 = buf1.slice(0,8)
console.log("buf2 content:"+buf2)
// beiJing

length .length


buf.length;

//このバッファのバイト数を返します。これは必ずしもバッファの内容のサイズではないことに注意してください。 length はバッファ オブジェクトによって割り当てられるメモリの量であり、バッファ オブジェクトの内容が変化しても変化しません。

以上がWeChat アプレットのバッファの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。