登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. Programming
  3. Node.js
  4. 正文

Node.js速学之-缓冲区

2015-12-31
参考文献:[1][EN]Georgo Ornbo.傅强.陈宗斌. Node.js入门经典[M]. 北京:人民邮电出版社.2013.4-1

JavaScript最初为浏览器设计,能很好的处理Unicode编码的字符串,但是不能很好的处理二进制数据。
需要使用二进制的示例有:TCP/UDP/图像或压缩文件/文件系统读取/来自网络的二进制数据流
Node.js中的缓冲区是处理二进制数据的一种方式,由于JS语言不能很好的处理二进制数据,所以缓冲区上实际上是对原始内存的分配,以便Node.js读写数据,这也让Node.js 有健全的方式处理二进制数据,不必依赖JS。
缓冲区是Buffer的实例,但Buffer模块是全局的,所以不用请求即可使用。

var buffer = new Buffer(8);//创建8字节缓冲区
var buffer = new Buffer([85]);//85等同于字幕U,如果使用UTF8输出,其内容就是U
//缓冲区初始化完成后,就不能再改变尺寸。

一、写入缓冲区

var buffer = new Buffer(8);//创建8字节缓冲区
buffer.write("a","utf8");//占用1字节

二、想缓冲区追加数据

var buffer = new Buffer(8);//创建8字节缓冲区
buffer.write("hi ","utf8");//占用1字节
console.log(buffer.toString());
buffer.write(' there',2,'utf8');//追加数据
console.log(buffer.toString());

终端输出:

hi      
hi there

三、复制缓冲区

buffer.copy(buferToCopyTo);//将整个字符串拷贝
buffer.copy(bufferToCopyTo,2,3,4);//之拷贝部分字符串
//第二个参数->目标应该写入哪个字节?
//三、四->指定缓冲区开始,结束位置

回忆:
1、系统会自动对缓存区进行垃圾回收

标签: 暂无
最后更新:2016-01-24

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号