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 相关文章推荐
Chrome中模态对话框showModalDialog返回值问题的解决方法
May 25 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
Sep 13 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
Mar 04 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
Bootstrap入门书籍之(一)排版
Feb 17 Javascript
js简单时间比较的方法
Aug 02 Javascript
详细分析单线程JS执行问题
Nov 22 Javascript
Vue.js 图标选择组件实践详解
Dec 03 Javascript
vue实现的请求服务器端API接口示例
May 25 Javascript
写给新手同学的vuex快速上手指北小结
Apr 14 Javascript
原生js 实现表单验证功能
Feb 08 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无限极分类原理
2019/03/14 PHP
禁止js文件缓存的代码
2010/04/09 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
JavaScript评论点赞功能的实现方法
2017/03/13 Javascript
Node.js操作redis实现添加查询功能
2017/05/25 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
python监控文件并且发送告警邮件
2018/06/21 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
numpy.where() 用法详解
2019/05/27 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
竞聘演讲稿范文
2014/01/12 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
本科毕业生自荐信
2014/06/02 职场文书
建筑工地文明标语
2014/10/09 职场文书
2015年消防工作总结
2015/04/24 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
能让Python提速超40倍的神器Cython详解
2021/06/24 Python