范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

关于Node。js之Buffer

  前言
  JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
  但在处理像 TCP 流或文件流时,必须使用到二进制数据。因此在 Node.js 中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
  在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理 I/O 操作中移动的数据时,就有可能使用 Buffer 库。
  原始数据存储在 Buffer 类的实例中。
  一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。 创建 Buffer 类
  Node Buffer 类可以通过多种方式来创建。
  方法 1
  创建长度为 10 字节的 Buffer 实例: var buf = new Buffer(10);
  方法 2
  通过给定的数组创建 Buffer 实例: var buf = new Buffer([10, 20, 30, 40, 50]);
  方法 3
  通过一个字符串来创建 Buffer 实例: var buf = new Buffer("bianchengsanmei", "utf-8");
  utf-8 是默认的编码方式,此外它同样支持以下编码:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"。 写入缓冲区
  语法
  写入 Node 缓冲区的语法如下所示: buf.write(string[, offset[, length]][, encoding])
  参数
  参数描述如下: string  - 写入缓冲区的字符串。 offset  - 缓冲区开始写入的索引值,默认为 0 。 length  - 写入的字节数,默认为 buffer.length encoding  - 使用的编码。默认为 "utf8" 。
  返回值
  返回实际写入的大小。如果 buffer 空间不足, 则只会写入部分字符串。
  实例 buf = new Buffer(256); len = buf.write("bi"); len = buf.write("bianchengsanmei");   console.log("写入字节数 : "+  len);
  执行以上代码,输出结果为: $node main.js 写入字节数 : 15 从缓冲区读取数据
  语法
  读取 Node 缓冲区数据的语法如下所示: buf.toString([encoding[,start[,end]]])
  参数
  参数描述如下: encoding - 使用的编码。默认为 "utf8" 。 start - 指定开始读取的索引位置,默认为 0。 end - 结束位置,默认为缓冲区的末尾。
  返回值
  解码缓冲区数据并使用指定的编码返回字符串。
  实例 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
  执行以上代码,输出结果为: $ node main.js abcdefghijklmnopqrstuvwxyz abcde abcde abcde 将 Buffer 转换为 JSON 对象
  语法
  将 Node Buffer 转换为 JSON 对象的函数语法格式如下: buf.toJSON()
  返回值
  返回 JSON 对象。
  实例 var buf = new Buffer("bianchengsanmei"); var json = buf.toJSON(buf);   console.log(json);
  执行以上代码,输出结果为: { type: "Buffer",   data: [ 119, 119, 119, 46, 119, 51, 99, 115, 99, 104, 111, 111, 108, 46, 99, 110 ] } 缓冲区合并
  语法
  Node 缓冲区合并的语法如下所示: Buffer.concat(list[, totalLength])
  参数
  参数描述如下: list - 用于合并的 Buffer 对象数组列表。 totalLength - 指定合并后 Buffer 对象的总长度。
  返回值
  返回一个多个成员合并的新 Buffer 对象。
  实例 var buffer1 = new Buffer("编程三昧 "); var buffer2 = new Buffer("bi"); var buffer2 = new Buffer("bianchengsanmei"); var buffer3 = Buffer.concat([buffer1,buffer2]); console.log("buffer3 内容: " + buffer3.toString());
  执行以上代码,输出结果为: buffer3 内容: 编程三昧 bianchengsanmei 缓冲区比较
  语法
  Node Buffer 比较的函数语法如下所示, 该方法在 Node.js v0.12.2 版本引入: buf.compare(otherBuffer);
  参数
  参数描述如下: otherBuffer  - 与  buf  对象比较的另外一个 Buffer 对象。
  返回值
  返回一个数字,表示  buf  在  otherBuffer  之前,之后或相同。
  实例 var buffer1 = new Buffer("ABC"); var buffer2 = new Buffer("ABCD"); 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 + "之后"); }
  执行以上代码,输出结果为: ABC在ABCD之前 拷贝缓冲区
  语法
  Node 缓冲区拷贝语法如下所示: buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])
  参数
  参数描述如下: targetBuffer - 要拷贝的 Buffer 对象。 targetStart - 数字, 可选, 默认: 0 sourceStart - 数字, 可选, 默认: 0 sourceEnd - 数字, 可选, 默认: buffer.length
  返回值
  没有返回值。
  实例 var buffer1 = new Buffer("ABC"); // 拷贝一个缓冲区 var buffer2 = new Buffer(3); buffer1.copy(buffer2); console.log("buffer2 content: " + buffer2.toString());
  执行以上代码,输出结果为: buffer2 content: ABC 缓冲区裁剪
  Node 缓冲区裁剪语法如下所示: buf.slice([start[, end]])
  参数
  参数描述如下: start - 数字, 可选, 默认: 0 end - 数字, 可选, 默认: buffer.length
  返回值
  返回一个新的缓冲区,它和旧缓冲区指向同一块内存,但是从索引 start 到 end 的位置剪切。
  实例 var buffer1 = new Buffer("youj"); // 剪切缓冲区 var buffer2 = buffer1.slice(0,2); console.log("buffer2 content: " + buffer2.toString());
  执行以上代码,输出结果为: buffer2 content: yo 缓冲区长度
  语法  Node 缓冲区长度计算语法如下所示: buf.length;
  返回值
  返回 Buffer 对象所占据的内存长度。
  实例 var buffer = new Buffer("bianchengsanmei"); //  缓冲区长度 console.log("buffer length: " + buffer.length);
  执行以上代码,输出结果为: buffer length: 15
  ~
  ~本文完,感谢阅读!
  ~ 学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!
  大家好,我是〖编程三昧〗的作者   隐逸王  ,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!
  你来,怀揣期望,我有墨香相迎! 你归,无论得失,唯以余韵相赠!
  知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!

iPhoneSE3海外价格偷跑,比上代要低25多方消息显示,苹果会在上半年发布第三代iPhoneSE,这款手机最大的卖点,就是低廉的售价,将成为苹果最便宜的5G手机。苹果会在3月份召开春季发布会,iPhoneSE3有望在此次发预算3000元尼康D800ED610索尼A7M2,A7R佳能5D26D如何选择松紧摄影研习社问答专题友友留言预算3000元,主要拍风景,人像视频较少拍,像素高,尼康D800ED610索尼A7M2,A7R佳能5D26D这几个机型犹豫很久,希望给点建议。99新D2021视听观点音响浮沉是时候要考虑买套音响享受生活从年初一到年初十,给您带来一连十天的2022视听观点。这都是我们对音响音乐与生活的用心思考,就这些观点您可能会有您独特的想法,期待您的留言哦!音响浮沉是时候要考虑买套音响享受生活文OPPO真是神机阴历二十八,把衣服扔进洗衣机开洗,半个小时过后,打开洗衣机的门,顿时脑袋发蒙,竟然看到了我的手机,还是开机状态。马上拿出来,关机,取卡,风筒吹,放了一个小时后,再开机。发现能开机但全球支付梦碎!Facebook拟出售稳定币项目Diem,两年努力付之东流华夏时报(www。chinatimes。net。cn)记者赵奕胡金华上海报道几经波折的Facebook加密货币项目最终还是夭折了。美东时间1月26日,华尔街日报报道称,已更名为Me澄清迷信不是科学尚不能解释的未知网络上玄学鬼们常用的一个自嗨的说法,即喜欢把迷信硬说成是未知未来的科学或者被科学破解之前的未知科学。其实,之所以说它们是迷信,根本不是科学没有把它们弄清楚,而是它们本来就是冗余不可2007年是中国台式电脑的分水岭翻看以前的资料,看到08年6月3日自己随手写的东西。很多人其实不了解中国电脑的历史,可以再分享一下,有心人也可以窥豹一斑2007年后半年到200年初,国内的所有品牌电脑厂商,以联想电脑太累了,罢工了,戴尔灵越笔记本,黑屏,无法开启分析原因1,因为戴尔笔记本有个问题,就是屏幕和电池之间,电池正常,屏幕不亮,但是CPU正常运行,并且在发热,可以判断,电脑是正常的,只是程序出现问题了,有一个bug要处理!解决办法三星S3500C,说好这台手机能用20年三星S3500C是我人生意义上的第一台手机(图1),2009年在家乡的数码店购得。图1我的三星S3500C那个时候手机不像现在这样明码标价,互联网也不如今天发达,我购买时通过和售货单价不超过100元三件提升幸福感的科技好物最近,不少朋友都打算在春节促销活动期间购买一些能够提升自身幸福感的电子产品。但是面对数千元的手机和电脑产品,很多人还是不忍剁手选购。相比之下百元以内的金额对于大多数人而言还是可以接搭建属于自己的mini影棚斯莫格RM01迷你补光灯开箱体验在摄影中,光能影响被摄体再现的形状影调色彩空间感以及美感真实感,所以很多老法师会告诉摄影新人,把光线研究明白,照片拍出来就不会差,但是如我这样的普通玩家,拍摄对象多为巴掌大小的数码
曝光宁德时代在北美建厂价值超过50亿美元为特斯拉等车企供货两名知情人士称,宁德时代在北美的新工厂将生产镍锰钴电池和磷酸铁锂电池,来为特斯拉和其他汽车制造商供货。3月19日消息,据报道,宁德时代考虑为建造一座价值50亿美元的电池工厂进行选址浙大博士整理的计算机视觉学习路线(含时间建议分配)AI显然是最近几年非常火的一个新技术方向,从几年前大家就认识到AI的能力,到现在在行业里已经在普遍的探讨AI如何落地了。我们可以预言未来在很多的领域,很多的行业,AI都会在里边起到美国人不明白,中国是如何做到的?时间整整缩短了一千倍随着中国科技产品不断亮相国际,中国在科研领域的快速发展也逐渐被各国捕捉到。面对中国取得的诸多令人意想不到的成就,西方国家好奇不已,连连感叹中国到底是如此做到的?各种先进材料作为实现这个回应真的负责任吗?来看看拼多多的回应里的那些关键点大家都在等的拼多多回应来了,一句话就是网传的6万人帮主播砍价不成功的消息不实。但网友似乎并不买账,我们来看看其中几个关键点1。拼多多表示主播是向QQ群发出帮砍邀请,没有几万人这么多网络赌博都知道很假,为什么还有那么多人在赌?在派出所工作的朋友告诉我,许多玩网络赌博的人,会在不知不觉中输掉几十万,最终妻离子散,而原因就是心存侥幸!赌是我们日常生活中常见的一种娱乐方式,常用的玩法和所使用的道具,无非就是麻上万名网友助力,手机还没到手?拼多多的游戏规则有点迷原标题砍到小数点后6位!上万名网友助力,手机还没到手?拼多多的游戏规则有点迷浙江在线3月18日讯3月17日晚,一位名叫超级小桀的日常的主播在某平台直播参与拼多多砍价免费领手机活动。三款销量火爆的佳能数码相机佳能RPM62代6D2深度测评佳能是单反时代的霸主,其单反销量远超其它品牌,为什么佳能受到市场如此青睐呢?这个佳能的市场定位策略和产品设计理念分不开佳能主打的是业余爱好者市场,这是销量最大的一个市场,虽然佳能的为什么手机市场上是手机厂商说了算,而不用尊重用户的意见?因为,个人要求差异性太大,各大手机厂商在众口难调之下,只能大众化设计和批量生产手机。当然,真正的有钱人,可以定制手机。另外,手机厂商众多,有各种各样的手机品牌和特色功能,完全可以根是真香还是智商税?Redmi100MAX19999是否值得买?2022年3月17日,Redmi举行了发布会,对外发布了K50旗舰手机,于此同时也发布了旗下100英寸的RedmiMax100电视。电视一经发布,便吸引了很多人的关注,网上关于它的非富勒烯受体有机光伏板固有运行寿命超过30年有机光伏电池(OPVs)如果能同时满足低成本高效率和长寿命的要求,将有潜力成为一种可再生能源技术。到目前为止,这项技术尚未实现的承诺是其不足的运行寿命。在这里,我们证明了NFA太阳格力云逸云锦空调属于什么档次?笔者揭秘自清洁档次高格力空调作为国内空调市场中的优质品牌之一,在业内的地位也是无可撼动。只不过格力空调也是有着很多的型号款式,不同的型号款式有着不同的功能,很多新人朋友可能一开始选择的时候会感到眼花缭