温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

在JavaScript中Node.js处理数据IO的方法是什么

发布时间:2021-11-04 16:33:30 来源:亿速云 阅读:187 作者:iii 栏目:web开发

本篇内容主要讲解“在JavaScript中Node.js处理数据IO的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在JavaScript中Node.js处理数据IO的方法是什么”吧!

在JavaScript中,对于字符串的操作已经十分便捷,不存在二进制数据类型,这些对字符串的简单操作和DOM操作基本上已经可以满足前端的需求了,但是Node.js中提供了处理文件和I/O的功能,因此需要处理大量的二进制数据。而在Node.js中Buffer和Stream文件流对二进制数据的处理提供了很好的支持

Buffer缓存区

Buffer类是随着Node.js内核一起发布的核心库,用于支持I/O操作中移动的数据处理。Buffer类为Node.js提供了一种存储原始数据的方法,该方法用来在内存中创建一个专门存放二进制数据的缓存区,也就是说预留了一定的存储空间在内存中,用来暂时保存输入或者输出的数据,这样Node.js也可以处理二进制数据

先说二进制,二进制是计算机技术中广泛采用的一种数制,是用0和1两个数码来表示的数据,由于计算机只能识别二进制数据,而人们很难看懂那些0和1的组合代表什么,所以就需要将二进制数据转换为人们能够识别的字符,这就需要设置字符编码,通过字符编码找到相应的字符集进行转换,最远书的字符编码就是ASCII

再说Buffer的构造函数

  • new Buffer(array)

  • new Buffer(size)

  • new Buffer(str[,encoding])

  • new Buffer(Buffer)

  • new Buffer(arrayBuffer)

可以看出,参数分别是字节,数组,buffer对象,字符串等等

再比如写入读取的语法:

  • write(string[,offset[,length]][,encoding])

  • toString([encoding,state[,end]])

  • concat(list[,totallength])

Stream文件流

由于Buffer缓存区限制在1GB,超过1GB的文件无法直接完成读写,在读写大文件时,如果读/写资源一直持续不停,那么Node.js就无法继续其他的工作,为此,Node.js提供了Stream文件流模块

最理想的方法就是,读一部分,写一部分,不论文件的大小,只是时间的问题,总会处理完成,这就需要用到流的概念

文件A通过流动的形式通过数据流管道,进入文件B中,采用“读一部分。写一部分”的方式,流的好处就是,接收方可以提前处理,缩短时间,提高速度,就像在线看视频,并不是全部缓存好了再播放,而是看一部分,缓存一部分

Stream四种流类型

  • Readable

  • Writable

  • Duplex

  • Transform

而在使用大文件复制时,通过可读流的chunk参数传递数据,chunk就像接数据的盆,在可读流中还有一个函数叫pipe(),这个函数是一个很高效的文件处理方式,可以简化之前复制文件的操作,所以,使用pipe进行完成数据的读取和写入也是很重要的

到此,相信大家对“在JavaScript中Node.js处理数据IO的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI