1 引入
var fs = require("fs")
2 文件读取
2.1 fs.readFile
我们一般都是用异步来读取文件
异步读取文件内容不需要打开
fs.readFile(filename[, options], function(err,data))
fs.readFile('./test.txt', function(err, data) {
// 读取文件失败/错误
if (err) {
throw err;
}
// 读取文件成功
console.log(data);
});
参数说明
- 第一个参数:filename String 文件名
- 第二个参数:option Object
- encoding String |null default=null 数据的编码方式
- flag String default='r’
- 第三个参数:回调函数
- 第二个参数为读取到的数据data
2.2 fs.read
通过文件描述符 fd 读取文件内容需要打开
fs.read(fd, buffer, offset, length, position, callback)都必须传
var buf = new Buffer.alloc(1024);
fs.open('input.txt', 'r+', function(err, fd) {
if (err) {
return console.error(err);
}
console.log("文件打开成功!");
console.log("准备读取文件:");
fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
if (err){
console.log(err);
}
console.log(bytes + " 字节被读取");
// 仅输出读取的字节
if(bytes > 0){
console.log(buf.slice(0, bytes).toString());
}
});
});
参数说明
- 第一个参数 fd - 通过 fs.open() 方法返回的文件描述符
- 第二个参数 buffer - 数据写入的缓冲区
- 第三个参数 offset - 缓冲区写入的写入偏移量
- 第四个参数 length - 要从文件中读取的字节数
- 第五个参数 position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。
- 第六个参数 callback - 回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表示读取的字节数,buffer 为缓冲区对象。
2.3 fs.readFileSync
同步读取代码(不常用)不需要打开
const data = fs.readFileSync('index.txt')
console.log(data.toString())
参数为读取的文件路径
3 文件写入
3.1 fs.writeFile
异步写入文件内容不需要打开
fs.writeFile(filename, data[, options], callback)
writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容。如果文件不存在,直接创建文件
fs.writeFile('input.txt', '我是通 过fs.writeFile 写入文件的内容', function(err) {
if (err) {
return console.error(err);
}
fs.readFile('input.txt', function (err, data) {
if (err) {
return console.error(err);
}
console.log("异步读取文件数据: " + data.toString());
});
});
参数说明
- 第一个参数:file - 文件名或文件描述符
- 第二个参数: 要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象。
- 第三个参数:options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 ‘w’
- 第四个参数:callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。
3.2 fs.write
通过文件描述符 fd 写入文件内容需要打开
fs.write(fd, data[, position[, encoding]], callback)