Node.js文件操作实战:读写、删除与监控
136 浏览量
更新于2024-09-03
收藏 121KB PDF 举报
本文详细探讨了在Node.js中进行文件操作的实例,着重介绍了文件的读取、写入、删除、遍历以及文件系统的监控等核心操作技巧。首先,我们了解了如何使用Node.js内置的`fs`模块来实现文件操作。
**1. 文件读取**
- **普通同步读取**: 使用`fs.readFileSync`方法同步读取文件,如在例子中,`./fileForRead.txt`被读取为UTF-8格式的数据,然后打印到控制台。如果读取过程中发生错误,会捕获异常并输出错误信息。
```javascript
var fs = require('fs');
var data;
try {
data = fs.readFileSync('./fileForRead.txt', 'utf8');
console.log('文件内容: ' + data);
} catch (err) {
console.error('读取文件出错: ' + err.message);
}
```
- **异步读取**: 使用`fs.readFile`方法,该函数是异步的,通过回调函数处理读取结果。如果读取成功,将在回调函数中提供数据;若出错,则返回错误信息。
```javascript
var fs = require('fs');
fs.readFile('./fileForRead.txt', 'utf8', function (err, data) {
if (err) {
return console.error('读取文件出错: ' + err.message);
}
console.log('文件内容: ' + data);
});
```
- **文件流读取**(适合大文件): 使用`fs.createReadStream`创建一个可读流,适用于逐块读取大文件,避免一次性加载到内存。在读取流中定义了`data`、`error`、`end`和`close`事件处理器,分别处理读取数据、错误、数据结束和流关闭的情况。
```javascript
var fs = require('fs');
var readStream = fs.createReadStream('./fileForRead.txt', 'utf8');
readStream
.on('data', function (chunk) {
console.log('读取数据: ' + chunk);
})
.on('error', function (err) {
console.log('出错: ' + err.message);
})
.on('end', function () {
console.log('没有数据了');
})
.on('close', function () {
console.log('已经关闭');
});
```
**2. 文件写入**
- Node.js的`fs.writeFile`或`fs.appendFile`用于同步或异步地将数据写入文件。这两个方法都需要一个字符串参数和一个可选的回调函数,以便在写入完成后执行。
**3. 文件删除**
- 使用`fs.unlink`方法删除文件,同样有同步和异步两种形式。需要注意的是,删除操作不可逆,所以在执行前确保操作的准确性。
**4. 遍历目录**
- 要遍历目录及其内容,可以使用`fs.readdir`方法读取目录中的文件和子目录,然后递归遍历。
**5. 监控文件系统变化**
- 对于实时监控文件系统的变化,可以利用Node.js的`fs.watch`方法,它会在指定路径发生变化时触发回调。
Node.js的文件操作功能强大且灵活,结合以上实例,开发者可以根据项目需求选择合适的操作方式,提高开发效率和代码的可维护性。在实际应用中,务必注意处理错误,保持良好的错误处理机制,确保程序的健壮性。
2020-10-19 上传
点击了解资源详情
2020-10-19 上传
2020-10-19 上传
2020-10-23 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38646230
- 粉丝: 6
- 资源: 876
最新资源
- 基于深度神经网络的DST指数预测.zip
- webpage
- 行业文档-设计装置-一种利用余热烘烤纸管的装置.zip
- word-frequency:小型javascript(节点)应用程序,该应用程序读取文本文件,并按顺序输出文件中20个最常用的单词以及它们的出现频率
- dltmatlab代码-dlt:用于计算离散勒让德变换(DLT)的MATLAB代码
- php-subprocess-example:使用Symfony Process Component和异步php执行的示例
- quick-Status
- .....
- 基于webpack的前后端分离方案.zip
- crossword-composer:文字游戏的约束求解器
- 电力设备与新能源行业新能源车产业链分析:_电动化持续推进,Q1有望淡季不淡.rar
- UnraidScripts
- dltmatlab代码-DLT:http://winsty.net/dlt.html
- ant.tmbundle:TextMate对Ant的支持
- zhaw-ba-online
- CandyMachineClient