node.js中的fs.read方法使用说明


Posted in Javascript onDecember 17, 2014

方法说明:

根据指定的文件描述符fd来读取文件数据并写入buffer指向的缓冲区对象。相对于readFile提供了更底层的接口。

一般情况下不建议使用这种方式来读取文件,因为它要求你手动管理缓冲区和文件指针,尤其是在 你不知道文件大小的时候,这将会是一件很麻烦的事情。

语法:

fs.read(fd,buffer,offset,length,position,[callback(err,bytesRead,buffer)])

由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(“fs”) )

接收参数:

fs             文件描述符

buffer      缓冲区,数据将被写入。

offset      buffer写入的偏移量

length     (integer)   指定文件读取字节数长度

position   (integer)   指定文件读取的起始位置,如果该项为null,将从当前文件指针的位置开始读取数据。

callback      回调传递了三个参数,err, bytesRead, buffer

· err  异常

· bytesRead:读取的字节数

· buffer:缓冲区对象

例子:

var fs = require('fs');

fs.open('123.txt' , 'r' , function (err,fd){ 

 if(err){ 

  console.error(err); 

  return; 

 } 

 

 var buf = new Buffer(8); 

 fs.read(fd, buf, 0, 8, null, function(err,bytesRead, buffer){ 

  if(err){ 

   console.log(err); 

   return; 

  } 

  console.log('bytesRead' +bytesRead); 

  console.log(buffer); 

 }) 

})

源码:

fs.read = function(fd, buffer, offset, length, position, callback) {

  if (!util.isBuffer(buffer)) {

    // legacy string interface (fd, length, position, encoding, callback)

    var cb = arguments[4],

        encoding = arguments[3];

    assertEncoding(encoding);

    position = arguments[2];

    length = arguments[1];

    buffer = new Buffer(length);

    offset = 0;

    callback = function(err, bytesRead) {

      if (!cb) return;

      var str = (bytesRead > 0) ? buffer.toString(encoding, 0, bytesRead) : '';

      (cb)(err, str, bytesRead);

    };

  }

  function wrapper(err, bytesRead) {

    // Retain a reference to buffer so that it can't be GC'ed too soon.

    callback && callback(err, bytesRead || 0, buffer);

  }

  binding.read(fd, buffer, offset, length, position, wrapper);

};
Javascript 相关文章推荐
收集json解析的四种方法分享
Jan 17 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
Feb 27 Javascript
jQuery中addClass()方法用法实例
Jan 05 Javascript
Jquery中基本选择器用法实例详解
May 18 Javascript
js实现精确到毫秒的倒计时效果
Aug 05 Javascript
jQuery滑动效果实现方法分析
Sep 05 jQuery
vue中使用input[type="file"]实现文件上传功能
Sep 10 Javascript
单页面vue引入百度统计的使用方法示例详解
Oct 13 Javascript
webpack4.x下babel的安装、配置及使用详解
Mar 07 Javascript
JavaScript剩余操作符Rest Operator详解
Jul 20 Javascript
layui中select,radio设置不生效的解决方法
Sep 05 Javascript
微信小程序实现加入购物车滑动轨迹
Nov 18 Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 #Javascript
node.js中的fs.mkdir方法使用说明
Dec 17 #Javascript
使用FlexiGrid实现Extjs表格效果方法分享
Dec 16 #Javascript
jQuery+css实现百度百科的页面导航效果
Dec 16 #Javascript
jQuery+PHP打造滑动开关效果
Dec 16 #Javascript
javascript进行四舍五入方法汇总
Dec 16 #Javascript
javascript 判断整数方法分享
Dec 16 #Javascript
You might like
php学习笔记之 函数声明
2011/06/09 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
浅谈React中的元素、组件、实例和节点
2018/02/27 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
Python列表list数组array用法实例解析
2014/10/28 Python
在Django框架中编写Context处理器的方法
2015/07/20 Python
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
python if not in 多条件判断代码
2016/09/21 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
出纳会计岗位职责
2014/03/12 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
python中print格式化输出的问题
2021/04/16 Python
python使用shell脚本创建kafka连接器
2022/04/29 Python