NodeJs-Buffer
大苹果

NodeJs-Buffer

Node.js中的Buffer类用于处理二进制数据,是处理网络流、文件系统操作、数据压缩等操作的重要工具。本文将详细介绍Buffer的使用方法和示例。1.创建Buffer可以使用多种方式创建Buffer,包括传入字符串、数组或指定长度://从字符串创建Bufferconstbuf1=Buffer.from('hello');//从数组创建Bufferconstbuf2=Buffer.from([0x68,0x65,0x6c,0x6c,0x6f]);//创建指定长度的Bufferconstbuf3=Buffer.alloc(5);//创建长度为5的空Buffer2.读取和写入Buffer可以使用索引读取和写入Buffer中的数据:constbuf=Buffer.alloc(5);//写入数据到Bufferbuf.write('hello');//读取Buffer中的数据console.log(buf.toString());//输出:hello3.合并Buffer可以使用Buffer.concat方法合并多个Buffer:constbuf1=Buffer.from('hello');constbuf2=Buffer.from('world');constcombinedBuf=Buffer.concat([buf1,buf2]);console.log(combinedBuf.toString());//输出:helloworld4.比较Buffer可以使用Buffer.compare方法比较两个Buffer:constbuf1=Buffer.from('abc');constbuf2=Buffer.from('def');constresult=Buffer.compare(buf1,buf2);console.log(result);//输出:-1(buf1在buf2前面)5.转换为JSON可以使用Buffer.toJSON方法将Buffer转换为JSON格式:constbuf=Buffer.from('hello');constjson=buf.toJSON();console.log(json);//输出:{type:'Buffer',data:[104,101,108,108,111]}6.使用Buffer处理文件可以使用fs模块的文件读取和写入方法结合Buffer来处理文件:constfs=require('fs');//读取文件到Bufferfs.readFile('file.txt',(err,data)=>{if(err)throwerr;console.log(data.toString());});//写入Buffer到文件fs.writeFile('newfile.txt',Buffer.from('hello'),(err)=>{if(err)throwerr;console.log('Filewrittensuccessfully');});结论Buffer是Node.js中用于处理二进制数据的重要工具,可以通过多种方式创建、读取和写入数据。在处理文件、网络流等场景中,Buffer提供了高效的方式来操作二进制数据,是Node.js开发中不可或缺的一部分。

Buffer,NodeJs 195 5月前
nodejs之Buffer学习笔记(一)
大苹果

nodejs之Buffer学习笔记(一)

类方法:Buffer.alloc(size[,fill[,encoding]])History版本变化v8.9.3指定无效的字符串填充将会被替换为0来填充缓冲区。v5.10.0新增于:v5.10.0参数参数字段类型说明sizeinteger指定新创建的Buffer大小fillstring|Buffer|integer指定填充Buffer的值。Default:0encoding<string>如果填充的是字符串,这个参数指定的就是字符串的编码。默认:'utf8'分配一个指定字节大小的新Buffer。如果填充未定义,则Buffer将被零填充。constbuf=Buffer.alloc(5);//Prints:<Buffer0000000000>console.log(buf);buf.toString([encoding[,start[,end]]])新增于:v0.1.90encoding<string>要解码的字符编码。默认:'utf8'start<integer>开始解码的字节偏移量。默认:0end<integer>在(不包括)停止解码的字节偏移量.默认:buf.lengthReturns:<string>根据编码中指定的字符编码将BUF解码为字符串。可以通过开始和结束仅解码BUF的子集字符串实例的最大长度(在UTF-16编码单元中)可以作为Buffer-Struts.MaxString长度来使用。constbuf2=Buffer.alloc(11,"你好12345",'utf8');//以下输出:<Buffere4bda0e5a5bd3132333435>console.log(buf2);//以下输出:你好12345console.log(buf2.toString('utf8'));constbuf3=Buffer.alloc(11,"你好123456",'utf8');//以下输出:<Buffere4bda0e5a5bd3132333435>console.log(buf2);//以下输出:你好12345=>buf3长度11,utf-8编码中一个汉字占三个字节,你好123456共12个字节,所以丢失一个字节console.log(buf2.toString('utf8'));

Buffer,node 6388 6年前
共 1 页