Node.js文件操作实战:读写、删除与监控

0 下载量 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的文件操作功能强大且灵活,结合以上实例,开发者可以根据项目需求选择合适的操作方式,提高开发效率和代码的可维护性。在实际应用中,务必注意处理错误,保持良好的错误处理机制,确保程序的健壮性。