数码资讯
在Node.js的缓冲和流模块的详细介绍
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
缓冲区(缓冲区)模块
JS最初设计的浏览器,所以这是很好的处理Unicode编码的字符串,但不能处理二进制数据。这是一个问题因为Node.js Node.js是发送和接收,经常发送二进制格式的数据在网络上的例子:
-通过TCP连接发送和接收数据。
-从图像或压缩文件中读取二进制数据;
-从文件系统读取和写入数据;
-从网络处理二进制数据流
缓冲模块带来了Node.js的方式存储的原始数据,使二进制数据可以用在JS中。可以使用缓存模块,当你需要处理的是移动的我/ O在Node.js运作的数据。
类别:缓冲区
缓冲类是一个全局变量类型,用于直接处理2进制数据,它可以以多种方式构建。
原始数据存储在缓冲类的一个实例中。缓冲区实例类似于整数数组。
1.new缓冲(大小):分配一个新的缓冲区的大小是8个字节的大小。
2.new缓冲(阵列):指定一个新的缓冲区使用8字节的数组。
3.new缓冲(STR,{编码}):编码字符串类型的编码方法和参数是可选的。
4。方法:Buffer.isEncoding(编码):如果给定的编码编码是有效的,返回真,否则返回假。
5。方法:Buffer.isBuffer(obj):测试是否这个obj是一个缓冲区。回到布尔
6。类方法:Buffer.concat(名单,{为}):表{阵}数组类型,缓冲数组,用来连接。所有缓冲区的长度{数量}型缓冲数组的总大小。
除了能够读取文件以获得缓冲区的实例之外,还可以直接构造它,例如:
复制代码代码如下所示:
VaR仓=新的缓冲区({ 0x48,0x65,0x6c,0x6c,0x6c });
缓冲区,像字符串一样,除了可以获得字节长度的长度属性外,还可以通过{ }读取指定位置的字节,例如:
复制代码代码如下所示:
本{ 0 }; / / = > 0x48;
缓冲区和字符串可以互相转换,例如,使用指定的编码将二进制数据转换成字符串:
复制代码代码如下所示:
var str = bin.tostring('utf-8 '); / / = >你好
切片方法不返回到一个新的缓冲区,但更像指向指向原始缓冲区中间位置的指针,如下所示。
复制代码代码如下所示:
1。{ 0x48,0x65,0x6c,0x6c,0x6c }
2。^ ^ ^
三.| |
4。bin bin.slice(2)
写缓冲区
复制代码代码如下所示:
var新缓冲区(缓冲区= 8);创建一个8字节的内存缓冲区
console.log(buffer.write('a','utf8 ')); / /输出1
这将写入的字符进入缓冲区,和节点返回的字节编码成缓冲区的数量,其中一个占用1字节UTF-8编码的信。
复制缓冲区
Node.js提供了一种方法来复制缓冲区对象的整体内容到另一个缓冲区对象。我们只能复制现有的缓冲区对象之间,所以他们必须创造。
复制代码代码如下所示:
Buffer.copy(buffertocopyto)
在这,buffertocopyto是目标缓冲区对象被复制。下面的例子如下:
复制代码代码如下所示:
无功工作=新的缓冲区(8);
buffer1.write(非常漂亮来满足你的'utf8);
var 2 =新的缓冲区(8);
buffer1.copy(2);
console.log(buffer2.tostring()); / /很高兴见到你
流模块
流是UNIX操作系统中的标准概念。主要有以下三个主要流程:
1。标准输入
2。标准输出
三.标准误差
可读流
如果缓冲区是Node.js处理原始数据的方式,然后流的方式通常是Node.js移动数据。Node.js流是可读或可写。在Node.js使用流很多模块,包括HTTP和文件系统。
假设我们创建了一个classmates.txt文件读名单,这样我们就可以使用的数据,因为数据流,这意味着在数据读取,它可以从最初的几个字节的接收数据,这是Node.js的一种常见模式。
复制代码代码如下所示:
VaR FS =需要('fs);
无功流= fs.readstream('classmates .txt);
Stream.setEncoding('utf8);
Stream.on ('data', function (chunk) {
console.log(读取一些数据)
});
Stream.on('关闭',函数(){(){
console.log(所有数据读取的)
});
在上面的示例中,当接收到新数据时触发事件数据。当文件读取完成时触发关闭事件。
可写流
显然,我们还可以创建一个写流来写入数据,这意味着,通过一个简单的脚本,您可以用一个流读取文件并写入另一个文件。
复制代码代码如下所示:
VaR FS =需要('fs);
无功readablestream = fs.readstream('classmates .txt);
无功writablestream = fs.writestream('names .txt);
readablestream.setencoding('utf8);
readablestream.on(数据功能(块){
writablestream.write(块);
});
readablestream.on('关闭',函数(){(){
WritableStream.end();
});
现在,当接收到数据事件时,数据被写入可写流中。
readable.setencoding(编码):返回:这
Readable.resume():同样的,这种方法允许可读流继续触发数据事件。
readable.pause():相同。这种方法会使流量模式流程停止触发数据事件,切换到非流动模式,让后续的数据在内部缓冲区。
类:流。可写。
可写(可写)流接口是您向目标写入的数据的抽象。
1.writable.write(块编码},{ },{回调):
{ } |块字符串缓冲区写数据
如果字符串是字符串,则编码{ } }代码。
回调函数}数据块回写回调
返回:{ }如果数据被处理了所有的真值。
此方法将数据写入底层系统,并在处理完数据后调用给定的回调函数。
2.writable.cork():强行扣留全部写。
被拘留的数据将被写入的时候。开口()或()调用结束被称为。
3.writable.end({块},{编码},{回调})
块{ } |可选字符串缓冲区写数据
如果字符串是字符串,则编码{ } }代码。
回调函数{可选},在流结束后回调
在调用完()之后调用写()生成错误。
复制代码代码如下所示:
写 / /您好,和结束to'world!
http.createserver(功能(REQ,RES){
res.write(你好,);
res.end(‘!');
现在不允许继续写入
});
JS最初设计的浏览器,所以这是很好的处理Unicode编码的字符串,但不能处理二进制数据。这是一个问题因为Node.js Node.js是发送和接收,经常发送二进制格式的数据在网络上的例子:
-通过TCP连接发送和接收数据。
-从图像或压缩文件中读取二进制数据;
-从文件系统读取和写入数据;
-从网络处理二进制数据流
缓冲模块带来了Node.js的方式存储的原始数据,使二进制数据可以用在JS中。可以使用缓存模块,当你需要处理的是移动的我/ O在Node.js运作的数据。
类别:缓冲区
缓冲类是一个全局变量类型,用于直接处理2进制数据,它可以以多种方式构建。
原始数据存储在缓冲类的一个实例中。缓冲区实例类似于整数数组。
1.new缓冲(大小):分配一个新的缓冲区的大小是8个字节的大小。
2.new缓冲(阵列):指定一个新的缓冲区使用8字节的数组。
3.new缓冲(STR,{编码}):编码字符串类型的编码方法和参数是可选的。
4。方法:Buffer.isEncoding(编码):如果给定的编码编码是有效的,返回真,否则返回假。
5。方法:Buffer.isBuffer(obj):测试是否这个obj是一个缓冲区。回到布尔
6。类方法:Buffer.concat(名单,{为}):表{阵}数组类型,缓冲数组,用来连接。所有缓冲区的长度{数量}型缓冲数组的总大小。
除了能够读取文件以获得缓冲区的实例之外,还可以直接构造它,例如:
复制代码代码如下所示:
VaR仓=新的缓冲区({ 0x48,0x65,0x6c,0x6c,0x6c });
缓冲区,像字符串一样,除了可以获得字节长度的长度属性外,还可以通过{ }读取指定位置的字节,例如:
复制代码代码如下所示:
本{ 0 }; / / = > 0x48;
缓冲区和字符串可以互相转换,例如,使用指定的编码将二进制数据转换成字符串:
复制代码代码如下所示:
var str = bin.tostring('utf-8 '); / / = >你好
切片方法不返回到一个新的缓冲区,但更像指向指向原始缓冲区中间位置的指针,如下所示。
复制代码代码如下所示:
1。{ 0x48,0x65,0x6c,0x6c,0x6c }
2。^ ^ ^
三.| |
4。bin bin.slice(2)
写缓冲区
复制代码代码如下所示:
var新缓冲区(缓冲区= 8);创建一个8字节的内存缓冲区
console.log(buffer.write('a','utf8 ')); / /输出1
这将写入的字符进入缓冲区,和节点返回的字节编码成缓冲区的数量,其中一个占用1字节UTF-8编码的信。
复制缓冲区
Node.js提供了一种方法来复制缓冲区对象的整体内容到另一个缓冲区对象。我们只能复制现有的缓冲区对象之间,所以他们必须创造。
复制代码代码如下所示:
Buffer.copy(buffertocopyto)
在这,buffertocopyto是目标缓冲区对象被复制。下面的例子如下:
复制代码代码如下所示:
无功工作=新的缓冲区(8);
buffer1.write(非常漂亮来满足你的'utf8);
var 2 =新的缓冲区(8);
buffer1.copy(2);
console.log(buffer2.tostring()); / /很高兴见到你
流模块
流是UNIX操作系统中的标准概念。主要有以下三个主要流程:
1。标准输入
2。标准输出
三.标准误差
可读流
如果缓冲区是Node.js处理原始数据的方式,然后流的方式通常是Node.js移动数据。Node.js流是可读或可写。在Node.js使用流很多模块,包括HTTP和文件系统。
假设我们创建了一个classmates.txt文件读名单,这样我们就可以使用的数据,因为数据流,这意味着在数据读取,它可以从最初的几个字节的接收数据,这是Node.js的一种常见模式。
复制代码代码如下所示:
VaR FS =需要('fs);
无功流= fs.readstream('classmates .txt);
Stream.setEncoding('utf8);
Stream.on ('data', function (chunk) {
console.log(读取一些数据)
});
Stream.on('关闭',函数(){(){
console.log(所有数据读取的)
});
在上面的示例中,当接收到新数据时触发事件数据。当文件读取完成时触发关闭事件。
可写流
显然,我们还可以创建一个写流来写入数据,这意味着,通过一个简单的脚本,您可以用一个流读取文件并写入另一个文件。
复制代码代码如下所示:
VaR FS =需要('fs);
无功readablestream = fs.readstream('classmates .txt);
无功writablestream = fs.writestream('names .txt);
readablestream.setencoding('utf8);
readablestream.on(数据功能(块){
writablestream.write(块);
});
readablestream.on('关闭',函数(){(){
WritableStream.end();
});
现在,当接收到数据事件时,数据被写入可写流中。
readable.setencoding(编码):返回:这
Readable.resume():同样的,这种方法允许可读流继续触发数据事件。
readable.pause():相同。这种方法会使流量模式流程停止触发数据事件,切换到非流动模式,让后续的数据在内部缓冲区。
类:流。可写。
可写(可写)流接口是您向目标写入的数据的抽象。
1.writable.write(块编码},{ },{回调):
{ } |块字符串缓冲区写数据
如果字符串是字符串,则编码{ } }代码。
回调函数}数据块回写回调
返回:{ }如果数据被处理了所有的真值。
此方法将数据写入底层系统,并在处理完数据后调用给定的回调函数。
2.writable.cork():强行扣留全部写。
被拘留的数据将被写入的时候。开口()或()调用结束被称为。
3.writable.end({块},{编码},{回调})
块{ } |可选字符串缓冲区写数据
如果字符串是字符串,则编码{ } }代码。
回调函数{可选},在流结束后回调
在调用完()之后调用写()生成错误。
复制代码代码如下所示:
写 / /您好,和结束to'world!
http.createserver(功能(REQ,RES){
res.write(你好,);
res.end(‘!');
现在不允许继续写入
});
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。