nodeJS中大文件读写操作--Stream流

本文介绍了在Node.js中如何使用Stream流进行大文件的读写操作,以解决不能一次性处理大文件的问题。通过引入文件系统模块FS,利用相关API,创建函数getContent()实现大文件内容的逐步读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nodejs中一般读取或写入时用的是fs.readFile()或fs.writeFile()。但是在读取或写入大文件时,因为文件过大不能一次性读完或写完 ,那么就引入了流的概念(Stream)。

Stream流,像漏的瓶子中流下的水一样,流出的水就是正在操作的内容,而瓶中的水没有操作。

Stream流使用需要引入文件系统(File System)。

相关File System API

var fs=require("fs"), //导入文件系统(File System)
rs=fs.createReadStream("f:/test.txt"), //创建读取流,参数为要读取内容的文件,这里使用的是绝对路径, ./表示当前路径 ,../表示上层路径。读取的内容以buffer形式存放
ws=fs.createWriteStream("f:/result.txt"); //创建可写流,参数为写入的文件名,如果文件不存在则创建文件,如果存在则覆盖源文件的内容

前期的准备完成之后,我们写一个函数来获取文件内容

var data=Buffer.form(''), //创建一个buffer用于存储读取完的信息
 buffers=[], //创建一个数组,用于存储每一个流读取的信息
 nread=0; //用于记录读取全部内容的长度
function getContent(rs,callback){ //传入参数为:读取流,回调函数
    rs.on("data",function(chuck){ //给rs绑定data事件,用于按流读取文件内容
        buffers.push(chuck); //把读取到的buffer存入数组中
        nread+=chuck.length; //记录读取文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值