当前位置: 首页 > news >正文

江苏网站集约化建设做爰全过程免费狐狸网站

江苏网站集约化建设,做爰全过程免费狐狸网站,北京国际化品牌设计,徐州网站建设外包pipe 是异步的#xff0c;可以实现读一点写一点#xff0c;管道的优势#xff1a;不会淹没可用内存#xff0c;但是在导入的过程中无法获取到内容 const fs require(fs); const path require(path);fs.createReadStream(path.resolve(__dirname…pipe 是异步的可以实现读一点写一点管道的优势不会淹没可用内存但是在导入的过程中无法获取到内容 const fs require(fs); const path require(path);fs.createReadStream(path.resolve(__dirname, ./56/name.txt)).pipe(fs.createWriteStream(path.resolve(__dirname, ./56/copy_name.txt)));我们新建文件 name.txt 里面添加文本 kaimo123456789下面在我们的可读流里添加 pipe 方法上一节实现的可写流直接拿过来用即可 const EventEmitter require(events); const fs require(fs);class KaimoReadStream extends EventEmitter {constructor(path, opts {}) {super();this.path path;this.flags opts.flags || r;this.mode opts.mode || 0o666;this.autoClose opts.autoClose || true;this.start opts.start || 0;this.end opts.end;// 读取的数量默认是 64k 如果文件大于 64k 就可以采用流的方式this.highWaterMark opts.highWaterMark || 64 * 1024;// 记录读取的偏移量this.pos this.start;// 默认创建一个可读流是非流动模式不会触发 data 事件如果用户监听了 data 事件后需要变为流动模式// 是否是流动模式this.flowing false;this.on(newListener, (type) {// 如果用户监听了 dataif (type data) {this.flowing true;this.read();}});// 打开文件this.open();}open() {fs.open(this.path, this.flags, this.mode, (err, fd) {if (err) {return this.emit(error, err);}// 将 fd 保存到实例上用于稍后的读取操作this.fd fd;this.emit(open, fd);});}// 利用发布订阅来实现延迟执行read() {// 读取必须要等待文件打开完毕如果打开了会触发 open 事件if (typeof this.fd ! number) {// 如果没有 fd 就返回一个 open 的一次性事件再去回调 read 方法return this.once(open, () this.read());}console.log(KaimoReadStream----, this.fd);// 真正开始读取const buffer Buffer.alloc(this.highWaterMark);// 每次理论上应该读取 highWaterMark 个但是用户能指定读取的位置// 应该读几个不要读超了let howMuchToRead this.end ? Math.min(this.end - this.pos 1, this.highWaterMark) : this.highWaterMark;fs.read(this.fd, buffer, 0, howMuchToRead, this.pos, (err, bytesRead) {if (bytesRead) {this.pos bytesRead;this.emit(data, buffer.slice(0, bytesRead));if (this.flowing) {this.read();}} else {this.emit(end);if (this.autoClose) {fs.close(this.fd, () {this.emit(close);});}}});}pause() {this.flowing false;}resume() {this.flowing true;this.read();}// 管道pipe(dest) {this.on(data, (data) {let flag dest.write(data);console.log(pipe--flag--, flag, data.toString());if (!flag) {this.pause();}});dest.on(drain, () {this.resume();});} }module.exports KaimoReadStream;测试一下 const path require(path);// 默认读 4 写 1 const KaimoReadStream require(./56/KaimoReadStream); // 64k const KaimoWriteStream require(./56/KaimoWriteStream); // 16klet rs new KaimoReadStream(path.resolve(__dirname, ./56/name.txt), {highWaterMark: 4 }); // 先写1个3个放缓存 let ws new KaimoWriteStream(path.resolve(__dirname, ./56/copy_name2.txt), {highWaterMark: 1 }); rs.pipe(ws);
http://www.zqtcl.cn/news/671290/

相关文章:

  • 用易语言可以做网站吗西安外贸网站开发
  • 常用网站推广方法电商便捷的网站建设平台
  • 做网站免费的app是什么免费公司注册
  • 做平面素材比较好的网站网络系统设计的步骤
  • 西安网站建设 乐云seo全国旅游景点网站开源
  • 中山快速做网站价格网站投稿源码
  • 免费网站建设教程青岛网站建设收费哪个平台好
  • 关于网站建设外文文献金蝶软件多少钱一套
  • 有高并发量门户网站开发经验国家商标局官网查询
  • 正规的招聘网站可信网站标志
  • 网站举报能不能查到举报人佛山企业网站建设电话
  • 家居网站建设如何现在去长沙会被隔离吗
  • 电子烟网站建设win2008iis7配置网站
  • 做网站的是什么职业微信公众号模板素材网站
  • 重庆川九建设有限责任公司官方网站成都网站海口网站建设
  • 珠宝 网站模板如何做公司官网
  • 贵阳网站制作免费iis7.5网站权限配置
  • 温州网站建设专业的公司移动互联网开发学什么专业
  • 集团企业网站建设方案运动服饰网站建设项目规划书
  • 简述网站建设的一般步骤简约的网站建设
  • wordpress删除用户头像昆明做网站优化的公司
  • 西安响应式网站网页设计的模板
  • 古装衣服店网站建设页面网站执行速度
  • 哪里的网站建设哈尔滨网络优化推广公司
  • 给网站做友情链接凡科网干嘛的
  • 网站经常出现502牧星网站建立
  • 个人网站建设的收获dw网站导航怎么做
  • 徐州网站设计快速排名网站
  • dede手机网站跳转口碑营销平台
  • 开一个素材设计网站怎么做的网页传奇手机版