이 글은 주로 WeChat 애플릿의 버퍼 버퍼에 대한 자세한 설명에 대한 관련 정보를 소개합니다. 필요한 친구는 참고할 수 있습니다.
WeChat 애플릿의 버퍼 버퍼에 대한 자세한 설명
JavaScript 언어 자체에는 문자열 데이터 유형이고 이진 데이터 유형은 없습니다.
그러나 TCP나 파일 스트림과 같은 스트림을 처리할 때는 바이너리 데이터를 사용해야 합니다. 따라서 Node.js에서는 바이너리 데이터를 저장하기 위한 버퍼 영역을 생성하는 데 사용되는 Buffer 클래스가 정의됩니다.
node.js에서 Buffer 클래스는 Node 커널과 함께 출시된 핵심 라이브러리입니다. Buffer 라이브러리는 Node.js에 원시 데이터를 저장하는 방법을 제공하여 Node.js가 바이너리 데이터를 처리할 수 있도록 합니다. Node.js에서 I/O 작업 중에 이동된 데이터를 처리해야 할 때마다 Buffer 라이브러리를 사용할 수 있습니다. . 원시 데이터는 Buffer 클래스의 인스턴스에 저장됩니다. 버퍼는 정수 배열과 유사하지만 V8 힙 메모리 외부의 원시 메모리 조각에 해당합니다.
Create Buffer
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"。
Write buffer.write()
var buf = new Buffer(200) var len = buf.write("www.csdn.net") console.log("写入字节数:" + len)
string - 버퍼에 기록되는 문자열입니다.
offset - 버퍼 쓰기가 시작되는 인덱스 값, 기본값은 0 입니다.
length - 쓴 바이트 수, 기본값은 buffer.length입니다.
encoding - 사용되는 인코딩입니다. 기본값은 'utf8' 입니다.
Cache read.toString()
buf = new Buffer(26); for (var i = 0 ; i < 26 ; i++) { buf[i] = i + 97; } console.log( buf.toString('ascii')); // 输出: abcdefghijklmnopqrstuvwxyz console.log( buf.toString('ascii',0,5)); // 输出: abcde console.log( buf.toString('utf8',0,5)); // 输出: abcde console.log( buf.toString(undefined,0,5)); // 使用 'utf8' 编码, 并输出: abcde
encoding - 사용된 인코딩입니다. 기본값은 'utf8' 입니다.
start - 읽기를 시작할 인덱스 위치를 지정하며 기본값은 0입니다.
end - 끝 위치, 기본값은 버퍼 끝입니다.
Buffer to JSON
var buf = new Buffer('www.runoob.com'); 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는 병합된 버퍼 객체의 전체 길이를 지정합니다.
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]]])
targetBuffer - 될 복사된 버퍼 개체입니다.
targetStart - 숫자, 선택 사항, 기본값: 0
sourceStart - 숫자, 선택 사항, 기본값: 0
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
반환 값
var buf1 = new Buffer("beiJing") var buf2 = buf1.slice(0,8) console.log("buf2 content:"+buf2) // beiJing
length .length
buf.length;//이 버퍼의 바이트 수를 반환합니다. 이는 반드시 버퍼 내용의 크기는 아닙니다. length는 버퍼 객체에 의해 할당된 메모리 양이며, 버퍼 객체의 내용이 변경되더라도 변경되지 않습니다.
위 내용은 WeChat 애플릿의 버퍼 예시에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!