Heim  >  Artikel  >  WeChat-Applet  >  Detaillierte Erläuterung von Beispielen für Buffer im WeChat-Applet

Detaillierte Erläuterung von Beispielen für Buffer im WeChat-Applet

黄舟
黄舟Original
2017-09-13 10:51:032855Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zur detaillierten Erklärung des WeChat Mini-Programmpuffers vorgestellt. Freunde, die sie benötigen, können auf

Die detaillierte Erklärung des WeChat Mini-Programmpuffers

Die JavaScript-Sprache selbst hat nur String-Datentypen, keine binären Datentypen.


Aber bei der Verarbeitung von Streams wie TCP oder Dateistreams müssen Binärdaten verwendet werden. Daher ist in Node.js eine Buffer-Klasse definiert, mit der ein Pufferbereich speziell zum Speichern von Binärdaten erstellt wird.


In node.js ist die Buffer-Klasse eine Kernbibliothek, die mit dem Node-Kern geliefert wird. Die Buffer-Bibliothek bietet eine Methode zum Speichern von Rohdaten in Node.js und ermöglicht es Node.js, Binärdaten zu verarbeiten. Wann immer Sie während E/A-Vorgängen in Node.js verschobene Daten verarbeiten müssen, ist es möglich, die Buffer-Bibliothek zu verwenden. . Rohdaten werden in Instanzen der Buffer-Klasse gespeichert. Ein Puffer ähnelt einem ganzzahligen Array, entspricht jedoch einem Teil des Rohspeichers außerhalb des V8-Heapspeichers.

Puffer erstellen


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"。

Buffer.write() schreiben


var buf = new Buffer(200)
var len = buf.write("www.csdn.net")
console.log("写入字节数:" + len)
  • string – Der String, der in den Puffer geschrieben werden soll.

  • Offset – der Indexwert, bei dem mit dem Schreiben des Puffers begonnen wird. Der Standardwert ist 0.

  • length – die Anzahl der geschriebenen Bytes, standardmäßig buffer.length

  • encoding – die verwendete Codierung. Der Standardwert ist „utf8“.

Cache 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. Kodierung - die zu verwendende Kodierung. Der Standardwert ist „utf8“.

  2. start – Gibt die Indexposition an, an der mit dem Lesen begonnen werden soll. Der Standardwert ist 0.

  3. end – Endposition, standardmäßig das Ende des Puffers.

Puffer zu JSON


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

Merge Buffer.concat([,] )


var buf = new Buffer("北京")
var buf1 = new Buffer("上海")
var buf2 = Buffer.concat([buf,buf1],12)
console.log(buf2.toString())
  • Liste ist eine Array-Liste von Pufferobjekten, die zum Zusammenführen verwendet werden.

  • totalLength gibt die Gesamtlänge der zusammengeführten Buffer-Objekte an.


Compare.compare(otherBuffer)

Eingeführt in Node.js v0.12.2-Version


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 – zum Kopieren Pufferobjekt.

  2. targetStart – Zahl, optional, Standard: 0

  3. sourceStart – Zahl, optional, Standard: 0

  4. sourceEnd – Zahl, optional, Standard: buffer.length



var buf1 = new Buffer("beiJing")
var buf2 = new Buffer(8)
buf1.copy(buf2)
console.log("buf2 content:"+buf2.toString())

clipping )


buf.slice([start[, end]])
  1. Start - Zahl, optional, Standard: 0

  2. Ende - Zahl, optional, Standard: buffer.length

Rückgabewert

Gibt einen neuen Puffer zurück, der auf denselben Speicher verweist wie der alte Puffer, wird jedoch vom Anfang bis zum Ende des Index abgeschnitten.



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

Länge.Länge


buf.length;
// Gibt die Anzahl der Bytes in diesem Puffer zurück. Beachten Sie, dass dies nicht unbedingt die Größe des Pufferinhalts ist. Die Länge ist die vom Pufferobjekt zugewiesene Speichermenge und ändert sich nicht, wenn sich der Inhalt des Pufferobjekts ändert.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für Buffer im WeChat-Applet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn