Node学习(二)02-node核心模块之fs模块——fs.readFile()-异步读取文件 & fs.writeFile() – 异步写入文件-会覆盖掉文件中原有的内容 & if多种写法之return和throw
2.3.2 fs模块
文件操作模块
- http://nodejs.cn/api/fs.html
- 文件系统,对文件/文件夹的操作 file system
-
使用方法
-
加载模块
// 引入模块,引入模块的时候,可以使用var、let,但是建议使用const,因为我们不希望它改变 const fs = require('fs');
-
调用fs模块的方法,下面列举fs模块中的常用方法
API 作用 备注 fs.access(path, callback) 判断路径是否存在 fs.appendFile(file, data, callback) 向文件中追加内容 fs.copyFile(src, callback) 复制文件 fs.mkdir(path, callback) 创建目录 fs.readDir(path, callback) 读取目录列表 fs.rename(oldPath, newPath, callback) 重命名文件/目录 fs.rmdir(path, callback) 删除目录 只能删除空目录 fs.stat(path, callback) 获取文件/目录信息 fs.unlink(path, callback) 删除文件 fs.watch(filename[, options][, listener]) 监视文件/目录 fs.watchFile(filename[, options], listener) 监视文件
-
示例
fs模块-效果
新建文件 test.txt
hello world
同层级目录中,新建如下文件
示例01、fs模块.js
- readFile – 异步读取文件
// fs 就是文件系统,所以fs模块的API都和文件或目录相关
const fs = require('fs');
// 调用fs的方法
// 1. readFile -- 异步读取文件
/**
* fs.readFile('被读取的文件路径', [utf-8], (err, data) => {
* err : 表示错误信息,如果没有错误,err的值是null
* data: data就是读取的结果
* });
*/
fs.readFile('test.txt', (err, data) => {
if (err) {
// 说明有错误发生
console.log(err);
} else {
console.log(data); // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
console.log(data.toString()); // hello world 等价下方
}
});
fs.readFile('./test.txt', 'utf-8', (err, data) => {
if (err) {
// 说明有错误发生
console.log(err);
} else {
console.log(data); // hello world 等价上方
}
});
新建文件 abc.txt
nice to meet you
同层级目录中,新建如下文件
示例02、fs模块.js
- 会覆盖掉文件中原有的内容
const fs = require('fs');
// fs.writeFile() -- 异步写入文件(会覆盖掉文件中原有的内容;如果文件不存在,会自动创建文件)
/**
* fs.writeFile('文件路径', '写入的内容', (err) => {
* err : 错误信息,如果没有错误,err的值为null
* });
*/
fs.writeFile('./abc.txt', 'hello你好', (err) => {
if (err) {
console.log(err);
} else {
console.log('写入成功')
}
});
fs.writeFile('./abc.txt', 'nice to meet you', (err) => {
// 如果有错误,则输出错误信息,并终止程序执行
if (err) { // 写法一
console.log(err);
return
}
if (err) { // 写法二
return console.log(err);
}
if (err) return console.log(err); // 写法三
// 如果没有错误,不能进入上面的if区间,输出 “写入成功”
console.log('写入成功');
});
fs.writeFile('./abc.txt', 'nice to meet you', (err) => {
// 如果有错误,则输出(抛出)错误信息,并终止程序执行
if (err) throw err; // 写法四
// 如果没有错误,不能进入上面的if区间,输出 “写入成功”
console.log('写入成功');
});
实例
1
// readFile -- 异步读取文件
/**
* fs.readFile('被读取的文件路径', [utf-8], (err, data) => {
* err : 表示错误信息,如果没有错误,err的值是null
* data: data就是读取的结果
* });
*/
// fs.readFile('test.txt', (err, data) => {
// if (err) {
// // 说明有错误发生
// console.log(err);
// } else {
// console.log(data); // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
// console.log(data.toString()); // hello world
// }
// });
fs.readFile('./test.txt', 'utf-8', (err, data) => {
if (err) {
// 说明有错误发生
console.log(err);
} else {
console.log(data); // hello world
}
});
2
// writeFile -- 异步写入文件
/**
* fs.writeFile('文件路径', '写入的内容', (err) => {
* err : 错误信息,如果没有错误,err的值为null
* });
*/
// fs.writeFile('./abc.txt', 'hello你好', (err) => {
// if (err) {
// console.log(err);
// } else {
// console.log('写入成功')
// }
// });
/* fs.writeFile('./abc.txt', 'nice to meet you', (err) => {
// 如果有错误,则输出错误信息,并终止程序执行
if (err) return console.log(err);
// 如果没有错误,不能进入上面的if区间,输出 “写入成功”
console.log('写入成功');
}); */
fs.writeFile('./abc.txt', 'nice to meet you', (err) => {
// 如果有错误,则输出(抛出)错误信息,并终止程序执行
if (err) throw err;
// 如果没有错误,不能进入上面的if区间,输出 “写入成功”
console.log('写入成功');
});
```
('./abc.txt', 'nice to meet you', (err) => {
// 如果有错误,则输出(抛出)错误信息,并终止程序执行
if (err) throw err;
// 如果没有错误,不能进入上面的if区间,输出 “写入成功”
console.log('写入成功');
});