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
Dec 09 Javascript
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
jQuery的animate函数实现图文切换动画效果
May 03 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
Dec 17 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
Aug 17 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
Oct 30 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
Apr 07 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 Javascript
ES6扩展运算符和rest运算符用法实例分析
May 23 Javascript
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 Vue.js
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 URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
PHP中的替代语法介绍
2015/01/09 PHP
php头像上传预览实例代码
2017/05/02 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
python实现查询苹果手机维修进度
2015/03/16 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
在Python中增加和插入元素的示例
2018/11/01 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
《莫高窟》教学反思
2014/02/25 职场文书
服装采购员岗位职责
2014/03/15 职场文书
见习报告的格式
2014/11/04 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
三年级作文之趣事作文
2019/11/04 职场文书