使用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);
});
});
运行结果