城市直播房产教育博客汽车
快传网
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

关于Node。js之Buffer

2月26日 渡缘祠投稿
  前言
  JavaScript语言自身只有字符串数据类型,没有二进制数据类型。
  但在处理像TCP流或文件流时,必须使用到二进制数据。因此在Node。js中,定义了一个Buffer类,该类用来创建一个专门存放二进制数据的缓存区。
  在Node。js中,Buffer类是随Node内核一起发布的核心库。Buffer库为Node。js带来了一种存储原始数据的方法,可以让Node。js处理二进制数据,每当需要在Node。js中处理IO操作中移动的数据时,就有可能使用Buffer库。
  原始数据存储在Buffer类的实例中。
  一个Buffer类似于一个整数数组,但它对应于V8堆内存之外的一块原始内存。创建Buffer类
  NodeBuffer类可以通过多种方式来创建。
  方法1
  创建长度为10字节的Buffer实例:varbufnewBuffer(10);
  方法2
  通过给定的数组创建Buffer实例:varbufnewBuffer(〔10,20,30,40,50〕);
  方法3
  通过一个字符串来创建Buffer实例:varbufnewBuffer(bianchengsanmei,utf8);
  utf8是默认的编码方式,此外它同样支持以下编码:ascii,utf8,utf16le,ucs2,base64和hex。写入缓冲区
  语法
  写入Node缓冲区的语法如下所示:buf。write(string〔,offset〔,length〕〕〔,encoding〕)
  参数
  参数描述如下:string写入缓冲区的字符串。offset缓冲区开始写入的索引值,默认为0。length写入的字节数,默认为buffer。lengthencoding使用的编码。默认为utf8。
  返回值
  返回实际写入的大小。如果buffer空间不足,则只会写入部分字符串。
  实例bufnewBuffer(256);lenbuf。write(bi);lenbuf。write(bianchengsanmei);console。log(写入字节数:len);
  执行以上代码,输出结果为:nodemain。js写入字节数:15从缓冲区读取数据
  语法
  读取Node缓冲区数据的语法如下所示:buf。toString(〔encoding〔,start〔,end〕〕〕)
  参数
  参数描述如下:encoding使用的编码。默认为utf8。start指定开始读取的索引位置,默认为0。end结束位置,默认为缓冲区的末尾。
  返回值
  解码缓冲区数据并使用指定的编码返回字符串。
  实例bufnewBuffer(26);for(vari0;i26;i){buf〔i〕i97;}console。log(buf。toString(ascii));输出:abcdefghijklmnopqrstuvwxyzconsole。log(buf。toString(ascii,0,5));输出:abcdeconsole。log(buf。toString(utf8,0,5));输出:abcdeconsole。log(buf。toString(undefined,0,5));使用utf8编码,并输出:abcde
  执行以上代码,输出结果为:nodemain。jsabcdefghijklmnopqrstuvwxyzabcdeabcdeabcde将Buffer转换为JSON对象
  语法
  将NodeBuffer转换为JSON对象的函数语法格式如下:buf。toJSON()
  返回值
  返回JSON对象。
  实例varbufnewBuffer(bianchengsanmei);varjsonbuf。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对象。
  实例varbuffer1newBuffer(编程三昧);varbuffer2newBuffer(bi);varbuffer2newBuffer(bianchengsanmei);varbuffer3Buffer。concat(〔buffer1,buffer2〕);console。log(buffer3内容:buffer3。toString());
  执行以上代码,输出结果为:buffer3内容:编程三昧bianchengsanmei缓冲区比较
  语法
  NodeBuffer比较的函数语法如下所示,该方法在Node。jsv0。12。2版本引入:buf。compare(otherBuffer);
  参数
  参数描述如下:otherBuffer与buf对象比较的另外一个Buffer对象。
  返回值
  返回一个数字,表示buf在otherBuffer之前,之后或相同。
  实例varbuffer1newBuffer(ABC);varbuffer2newBuffer(ABCD);varresultbuffer1。compare(buffer2);if(result0){console。log(buffer1在buffer2之前);}elseif(result0){console。log(buffer1与buffer2相同);}else{console。log(buffer1在buffer2之后);}
  执行以上代码,输出结果为:ABC在ABCD之前拷贝缓冲区
  语法
  Node缓冲区拷贝语法如下所示:buf。copy(target〔,targetStart〔,sourceStart〔,sourceEnd〕〕〕)
  参数
  参数描述如下:targetBuffer要拷贝的Buffer对象。targetStart数字,可选,默认:0sourceStart数字,可选,默认:0sourceEnd数字,可选,默认:buffer。length
  返回值
  没有返回值。
  实例varbuffer1newBuffer(ABC);拷贝一个缓冲区varbuffer2newBuffer(3);buffer1。copy(buffer2);console。log(buffer2content:buffer2。toString());
  执行以上代码,输出结果为:buffer2content:ABC缓冲区裁剪
  Node缓冲区裁剪语法如下所示:buf。slice(〔start〔,end〕〕)
  参数
  参数描述如下:start数字,可选,默认:0end数字,可选,默认:buffer。length
  返回值
  返回一个新的缓冲区,它和旧缓冲区指向同一块内存,但是从索引start到end的位置剪切。
  实例varbuffer1newBuffer(youj);剪切缓冲区varbuffer2buffer1。slice(0,2);console。log(buffer2content:buffer2。toString());
  执行以上代码,输出结果为:buffer2content:yo缓冲区长度
  语法Node缓冲区长度计算语法如下所示:buf。
  返回值
  返回Buffer对象所占据的内存长度。
  实例varbuffernewBuffer(bianchengsanmei);缓冲区长度console。log(bufferlength:buffer。length);
  执行以上代码,输出结果为:bufferlength:15
  本文完,感谢阅读!
  学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!
  大家好,我是编程三昧的作者隐逸王,我的公众号是编程三昧,欢迎关注,希望大家多多指教!
  你来,怀揣期望,我有墨香相迎!你归,无论得失,唯以余韵相赠!
  知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!
投诉 评论 转载

阿里腾讯布局NFTNFT在海外的爆火是让人惊叹的,然而国内对于NFT的接触却慢了一点。率先入局的就是国内的互联网巨头公司。今年5月,阿里拍卖推出NFT数字艺术专场,随后支付宝在6月联名敦煌美术研……小米,vivoOPPO我选哪个?自从华为陷入芯片危机后,国产手机的代表就只剩下小米、vivo、OPPO了。要说选哪个,这没有标准答案,每一家都有自己的拿手绝活。消费者如何选择还是要根据自己的预算、需求等……真没想到!OPPOFindX3价格如此坚挺因为品牌属性的问题OPPO的当家旗舰在线上的声音并不大,而且很容易让人遗忘。比如:OPPOFindX3系列,明明是年度最佳旗舰之一,但仅在发布后那几天有点声音,后来线上很少有人……小米,在东南亚智能手机市场也超越三星电子小米小米在欧洲取得出色的成绩Canalys,出货量增加107,占据22的市场份额,三星19小米在东南亚智能手机市场上首次超过三星电子成为龙头企业。国内媒体援引市场调……十周年除了更名,陌陌是也要迈向元宇宙吗?近段时间,陌生人社交赛道不断传出备受外界关注的消息,前有Soul宣布递交招股书,申请以SSR作为代码在纳斯达克上市。此后,有关于探探创始人退出公司具体管理事务,其或将与陌陌进一……梦网科技全资子公司中标中国邮政储蓄银行长号码短信服务项目挖贝网4月6日,梦网科技(002123)发公告称,近日,公司全资子公司深圳市梦网科技发展有限公司(以下简称深圳梦网)以第一名候选人中标中国邮政储蓄银行股份有限公司中国邮政储蓄银……10元能买1000个赞!万物皆可刷,已成产业链日前,媒体报道了调查网红餐厅好评真假难辨!有‘五星’是这样刷出来的,揭露种草经济变味儿,引发关注。数据刷量这一老顽疾,也再次被推到台前。记者调查发现,当前数据刷量依旧猖獗,10……你会放弃苹果手机,来支持国产品牌吗?你会放弃苹果手机,来支持国产品牌吗?是满足我们的虚荣心,还是真的好用。随着科技技术的发展,我国的一些国产品牌有了长足的进步,但依然在国际大品牌之间存在着不小的差距。那么,我们如……2022,你会失业吗?这篇深度反思文章,可能会改变你的职场命文瓜爸我要说一句真话:铁饭碗不是一辈子在一个地方吃饭。而是到哪里都有饭吃。靠得住的不是时代,而是个人,一定要强化个人能力,让你在疯狂的内卷下,仍然无可替代。最……关于Node。js之Buffer前言JavaScript语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在Node。js中,定义了一个Buf……目前性价比高的千元手机哪个好?千元机好推荐其实现在有好几部千元机是特别有竞争力的,而且性能也不俗!首先第一部要介绍的是最近上市的360N5,只要1399就可以买到一部6gb运存的手机,这个估计也是首款……Terra(LUNA)暴跌11,为什么顶级山寨币暴跌?由于情绪恶化导致投资者锁定市场近期的涨幅,Terra(LUNA)在周六引领山寨币大跌。大多数主要的山寨币本周也出现了大幅下跌。LUNA下跌11至一周多低点94。13美元。……
oppo平板电脑曝光外观类似华为matepadpro12。6和黑豆一样大小的耳机?JEETAir2,刷新我对耳机的认知中国高端芯片的未来会怎么样?国内哪家企业会领先突破?为什么?98寸液晶电视价格怎么样,哪个牌子质量好?马斯克元宇宙概念并不让人信服,而Web3更多的是营销而不是现美国又抡起对华制裁大棒,处处针对中国高科技,竞争不过就耍无赖通过eSIM和软件来实现苹果XS以上机型三卡三待十四五市场监管科技发展规划印发建立碳计量基准微信怎样才能关闭订阅号消息?其实方法很简单,学会告诉家里人有网友说华为手机中mate是亲儿子,P系列是亲女儿,荣耀是领小米12Pro保护壳曝光后置三摄,前置居中挖孔内置电池!爱立熊A4打印机上手体验高颜值实力派
冬种洋葱种植技术Perl基础引用1引用基础续写凡卡贷款逾期的后果有哪些?经典职场正能量的语录湖南的白辣椒怎么做才好吃?新能源汽车启动前要注意什么新能源汽车启动时要注意什么国庆有感幸福就是身体好,有事做,有人爱,看见希望华能天津敢能实企业文化的培育与实践公务员被派到国企任职,到底好不好?过来人:这3点说到根子了热 性侵老妇,女婴,甚至蜥蜴也不放过,强奸大国印度有多疯狂?神隐结局he还是be

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁