iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >node.js 利用流实现读写同步,边读边写的方法
  • 783
分享到

node.js 利用流实现读写同步,边读边写的方法

方法nodejs 2022-06-04 17:06:59 783人浏览 八月长安
摘要

如下所示: //10个数 10个字节,每次读4b,写1b let fs=require("fs"); function pipe(source,target) { //先创建可读流,再创建可写流

如下所示:


//10个数 10个字节,每次读4b,写1b
let fs=require("fs");
function pipe(source,target) {
  //先创建可读流,再创建可写流
  //先读一次,rs.on(data)
  //将读到的类容写入目标中 ,返回布尔值,如果是ture,继续写,默认情况应该是false,暂停读取
  //ws.on('drain'),抽干后,回复读取
  //监听读取文件完毕后,关闭读取rs.on('end')

  let rs=fs.createReadStream(source,{highWaterMark:4});
  let ws=fs.createWriteStream(target,{highWaterMark:1});

  rs.on('data',function (chunk) { //chunk是buffer类型

    if(ws.write(chunk)===false){
      //写不下,停止读取
      rs.pause()
    }

  });
  ws.on('drain',function () {
    //每次写的内存干了就恢复读取
    console.log("111");
    rs.resume() //恢复读取
  });
  rs.on('end',function (chunk) {
    ws.end();
  })

}
pipe('./1.txt','./3.txt')

上面这种写法比较繁琐,大家看完后,忘记就行

node.js提供给我们内置方法pipe


//10个数 10个字节,每次读4b,写1b
let fs=require("fs");
function pipe(source,target) {

  let rs=fs.createReadStream(source,{highWaterMark:4});
  let ws=fs.createWriteStream(target,{highWaterMark:1});
  //可读流到可写流,异步操作,可以保证内存不会被淹没,读一点,写一点
  // 如果想看文件类容,使用readFile

  rs.pipe(ws);
}
pipe('./1.txt','./4.txt')

直接将读取的流操作到写入流中,还是异步操作

以上这篇node.js 利用流实现读写同步,边读边写的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: node.js 利用流实现读写同步,边读边写的方法

本文链接: https://www.lsjlt.com/news/12372.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js如何使用流实现读写同步边读边写功能
    这篇文章主要为大家展示了“Node.js如何使用流实现读写同步边读边写功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Node.js如何使用流实现读写同步边读...
    99+
    2024-04-02
  • Node.js怎么使用流实现读写同步边读边写功能
    本篇内容主要讲解“Node.js怎么使用流实现读写同步边读边写功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js怎么使用流实现读写同步边读边写功能”吧!具体代码如下所示://10个...
    99+
    2023-06-17
  • Node.js怎么使用流实现边读边写功能
    这篇“Node.js怎么使用流实现边读边写功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Node.js怎么使用流实现边读...
    99+
    2023-07-04
  • node.js中怎么利用流实现读写同步
    node.js中怎么利用流实现读写同步,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。如下所示://10个数 10个字节,每次读4...
    99+
    2024-04-02
  • Java 中怎么利用Thread实现读写同步
    Java 中怎么利用Thread实现读写同步,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.读写者同步问题多个读者可以同时读取同一个缓冲区,但当有写者对缓冲区进行写操作时,具...
    99+
    2023-06-03
  • Node.js 文件读写:同步与异步的艺术
    同步文件操作 同步文件操作通过 fs.readFileSync() 和 fs.writeFileSync() 方法实现。这些方法会阻塞主线程,直到操作完成,这意味着在读取或写入文件时,其他代码段将无法执行。 同步文件操作的特点: 简单易...
    99+
    2024-04-02
  • node.js读写json文件的方法
    本文实例为大家分享了node.js读写json文件的具体代码,供大家参考,具体内容如下 一、引入依赖包 const fs = require('fs') const path = r...
    99+
    2024-04-02
  • Java利用StampedLock实现读写锁的方法详解
    目录概述StampedLock介绍演示例子性能对比总结概述 想到读写锁,大家第一时间想到的可能是ReentrantReadWriteLock。实际上,在jdk8以后,java提供了一...
    99+
    2022-11-13
    Java StampedLock读写锁 Java StampedLock Java 读写锁
  • Node.js 文件读写实战:同步与异步的效率之争
    同步文件读写 同步读写操作在主线程上顺序执行,直到操作完成。这意味着在进行读写操作期间,主线程将被阻塞,无法执行其他任务。同步读写操作的优势在于其简单和可预测性。它易于理解和实现,并且操作结果始终在调用该操作的函数中可用。 const f...
    99+
    2024-04-02
  • Node.js 文件读写:同步与异步的进阶攻略
    同步文件操作在执行期间阻塞事件循环,等待文件操作完成。 优点: 操作结果立即可用 代码执行顺序清晰 缺点: 性能瓶颈:大型文件或网络 I/O 操作时,会阻塞主线程 不适合处理并发操作 异步文件操作 异步文件操作通过回调函数或 ...
    99+
    2024-04-02
  • Node.js 文件读写:同步与异步的性能启示录
    同步文件读写 同步文件读写操作会阻塞当前线程,直到操作完成。这可能会导致应用程序无响应,尤其是在处理大型文件时。 const fs = require("fs"); // 同步读取文件 const data = fs.readFileS...
    99+
    2024-04-02
  • Node.js 文件读写:同步与异步的技巧与陷阱
    特点:阻塞操作,即在读取或写入文件时,会阻塞整个线程,直到操作完成。 优点:简单易懂,执行顺序清晰,不会造成回调地狱。 缺点:性能低下,当文件体积较大时,会导致程序长时间阻塞。 异步文件读写 特点:非阻塞操作,即在读取或写入文件时,...
    99+
    2024-04-02
  • Node.js 文件读写中的时间魔法:同步与异步的较量
    同步文件读写 同步文件读写操作会阻塞主线程,直到完成读写操作。这意味着在读写操作完成之前,主线程无法执行任何其他任务。同步文件读写操作的常见函数包括: fs.readFileSync():同步读取文件内容 fs.writeFileSyn...
    99+
    2024-04-02
  • Node.js 文件读写:同步与异步的迷思与真相
    Node.js 中的文件读写操作分为同步和异步两种模式。同步操作会阻塞程序执行,直到操作完成,而异步操作会在后台执行,并通过回调函数或事件监听器通知程序操作结果。 同步读写 同步读写操作使用 fs.readFileSync() 和 fs....
    99+
    2024-04-02
  • Node.js 文件读写的时空之旅:同步 vs. 异步之争
    ...
    99+
    2024-04-02
  • 利用python实现ftp的文件读写
    ftp登陆连接 from ftplib import FTP #加载ftp模块 ftp=FTP() #设置变量 ftp.set_debuglevel(2) ...
    99+
    2023-01-31
    文件 python ftp
  • Node.js 文件读写:同步与异步的性能神话揭秘
    长期以来,一直存在一种误解,即同步文件读写操作总是比异步操作更快。这种误解源于以下原因: 同步操作会在调用时阻塞主线程,而异步操作不会。 在大多数情况下,主线程比异步事件循环执行代码更快。 然而,这种误解忽略了以下事实: 在 Nod...
    99+
    2024-04-02
  • 解密 Node.js 文件读写的时空奥秘:同步 vs 异步
    Node.js 提供了两种读取文件的方法:同步和异步。理解这两种方法之间的差异对于优化代码性能和实现最佳实践至关重要。 同步读取 同步文件读取使用 fs.readFileSync() 方法,它会阻塞事件循环,直到文件读取完成。这意味着程序...
    99+
    2024-04-02
  • 利用amoeba实现mysql数据库的读写分离的方法
    这篇文章将为大家详细讲解有关利用amoeba实现mysql数据库的读写分离的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。关于mysql的读写分离架构有很多,百度的话...
    99+
    2024-04-02
  • Node.js 文件读写的艺术:同步与异步的和谐共存
    同步文件读写:简单但代价高昂 同步文件读写方法使用 fs.readFileSync() 和 fs.writeFileSync() 函数。这些函数会阻塞事件循环,直到文件操作完成。同步方式简单易用,但缺点是效率低下,因为在文件操作期间无法执...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作