Node.js⽂件模块fs读取⽂件的两种⽅式及⽐较:read和readFile 1. fs.read()读取⽂件数据
语法格式:
从⽂件描述符fd中读取⽂件数据。
fd - 通过 fs.open() ⽅法返回的⽂件描述符。
buffer - 数据写⼊的缓冲区。
offset - 缓冲区写⼊的写⼊偏移量。
length - 要从⽂件中读取的字节数。
position - ⽂件读取的起始位置,如果 position 的值为 null,则会从当前⽂件指针的位置读取。
callback - 回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表⽰读取的字节数,buffer 为缓冲区对象。
使⽤fs.read()⽅法读取⽂件内容时,⾸先需要⼀个⽂件描述符ad()⽅法可以实现部分⽂件内容的读取。通过length和position参数可以指定读取⽂件内容的长度和读取内容的起始位置。
例⼦:
var fs = require("fs");
var buf = new Buffer.alloc(1024);
console.log("准备打开已存在的⽂件!");
fs.open('', 'r+', function(err, fd) {
if (err) {
(err);
}
console.log("⽂件打开成功!");
console.log("准备读取⽂件:");
if (err){
console.log(err);
}
console.log(bytes + "  字节被读取");
// 仅输出读取的字节
if(bytes > 0){
console.log(buf.slice(0, bytes).toString());
}
});
});
2. fs.readFile()读取⽂件内容
读取⽂件的全部内容
filename表⽰要读取的⽂件
callback回调函数有2个参数 (err, data),参数 data 是⽂件的内容。如果没有指定参数encoding, 则返回值为Buffer。
例⼦:
if(err){
console.log(err)
}
console.log("读取到的数据:"+String())
})
3. fs.read()和fs.readFile()⽅法的⽐较
本质上讲,fs.readFile()⽅法是对fs.read()⽅法的进⼀步封装,fs.readFile()⽅法可以⽅便的读取⽂件的全部内容。
使⽤fs.readFile()⽅法读/etc/passwd⽂件全部内容:
//⽂件内容
console.String());字符串长度js
})
相⽐fs.readFile()⽅法,使⽤fs.read()⽅法读取⽂件的全部内容可操作性要强很多。⾸先要⽤fs.stat判断⽂件的⼤⼩,然后使⽤fs.open()创建⽂件描述符,最后再使⽤fs.read()⽅法读取⽂件内容。
使⽤fs.read()⽅法读txt/01.js⽂件全部内容:
fs.stat('txt/01.js', function(err, stat) {
if(stat&&stat.isFile()){
fs.open('txt/01.js', 'r', function(err, fd){
//创建⼀个与⽂件⼤⼩相同的缓冲区
var readBuffer = new Buffer(stat.size);
var len = stat.size;
var offset = 0;
var filePostion = 0;
//⽂件内容
console.String());
      });
    });
  }
})

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。