使用fs.read读文件

fs.read()

先介绍fs.open。

fs.open(path,flags,[mode],callback)方法用于打开文件,以便fs.read()读取。

参数说明:

  • path 文件路径
  • flags打开文件的方式
  • [mode] 是文件的权限(可行参数,默认值是0666)
  • callback 回调函数

flags值及说明如下

r :读取文件,文件不存在时报错;
r+ :读取并写入文件,文件不存在时报错;
rs :以同步方式读取文件,文件不存在时报错;
rs+ :以同步方式读取并写入文件,文件不存在时报错;
w :写入文件,文件不存在则创建,存在则清空;
wx :和w一样,但是文件存在时会报错;
w+ :读取并写入文件,文件不存在则创建,存在则清空;
wx+ :和w+一样,但是文件存在时会报错;
a :以追加方式写入文件,文件不存在则创建;
ax :和a一样,但是文件存在时会报错;
a+ :读取并追加写入文件,文件不存在则创建;
ax+ :和a+一样,但是文件存在时会报错。

fs.close(fd,[callback])

用于关闭文件,fd是所打开文件的文件描述符。

fs.read(fd,buffer,offset,length,position,callback)接收6个参数。

参数说明:

  • fd 文件描述符,必须接收fs.open()方法中的回调函数返回的第二个参数。
  • buffer 是存放读取到的数据的Buffer对象。
  • offset 指定 向buffer中存放数据的起始位置
  • length 指定 读取文件中数据的字节数
  • position 指定 在文件中读取文件内容的起始位置
  • callback 回调函数,参数如下
    • err 用于抛出异常
    • bytesRead 从文件中读取内容的实际字节数
    • buffer 被读取的缓存区对象。

例子:

var fs = require('fs'); // 引入fs模块

// 打开文件
fs.open('./text.txt', 'r', function(err, fd) {
if (err) {
throw err;
}
console.log('open file success.');
var buffer = new Buffer(255);
// 读取文件
fs.read(fd, buffer, 0, 10, 0, function(err, bytesRead, buffer) {
if (err) {
throw err;
}
// 打印出buffer中存入的数据
console.log(bytesRead, buffer.slice(0, bytesRead).toString()); // 关闭文件
fs.close(fd);
});
});

  运行结果

最新文章

  1. 转:深入浅出UML类图(具体到代码层次)
  2. LeetCode——Single Number(找出数组中只出现一次的数)
  3. BZOJ3414 : Poi2013 Inspector
  4. CaronteFX插件简介
  5. 查询Sqlserver数据库死锁的一个存储过程(转)
  6. bzoj 1007 : [HNOI2008]水平可见直线 计算几何
  7. iOS开发 日常错误积累
  8. C#的内存管理原理解析+标准Dispose模式的实现
  9. 问题:强制关闭Redis快照导致不能持久化
  10. Mybatis框架基础支持层——日志模块(8)
  11. sql查询表中重复数据个数
  12. 阅读:ECMAScript 6 入门(3)
  13. ACM找bug方案
  14. 解决eclipse部署项目各种乱码问题,推荐一下别人的做法
  15. Installing PHP5 on Ubuntu Server
  16. 设置span在div中垂直居中
  17. 适合Eclipse Juno的UML插件
  18. 使用 v-cloak 防止页面加载时出现 vue.js 的变量名
  19. 小数第n位:高精度
  20. Word中怎么用MathType编辑公式

热门文章

  1. go语言从例子开始之Example10.map(字典)
  2. 转帖 Java生成和操作Excel文件
  3. HTML+CSS+JS是什么
  4. SSD算法的实现
  5. BZOJ5205 [CodePlus 2018 3 月赛]白金元首与莫斯科
  6. Qt Unknown module(s) in QT: webengine
  7. mysql inner join用法
  8. Cisco基础(四):配置标准ACL、配置扩展ACL、配置标准命名ACL、配置扩展命名ACL
  9. 微信小程序学习笔记(二)--框架-全局及页面配置
  10. HTML CSS + DIV实现排版布局