下面是对Node.js文件系统(fs)和流(stream)的详解攻略。
fs模块的介绍
Node.js的fs
模块提供了一组丰富的API用于文件系统操作,包括文件的读取、写入、修改、删除等。该模块使用同步或异步的方式访问文件系统,可以操作各种类型的文件,包括文本、图片、视频、音频等。
fs的常见API
以下是一些最常用的fs API:
读取文件:
fs.readFile(path, [options], callback)
- 异步读取文件内容fs.readFileSync(path, [options])
- 同步读取文件内容
写入文件:
fs.writeFile(file, data, [options], callback)
- 异步写入文件内容fs.writeFileSync(file, data, [options])
- 同步写入文件内容
修改文件:
fs.appendFile(file, data, [options], callback)
- 异步追加文件内容fs.appendFileSync(file, data, [options])
- 同步追加文件内容
删除文件:
fs.unlink(file, callback)
- 异步删除文件fs.unlinkSync(file)
- 同步删除文件
检查文件状态:
fs.stat(path, callback)
- 异步获取文件状态fs.statSync(path)
- 同步获取文件状态
Stream模块的介绍
Node.js的stream
模块提供了一种流式数据处理的机制,用于处理大量且连续的数据流。典型的流处理任务包括数据输入、输出、转换、过滤、压缩等操作。
Stream的分类
流可以分为可读流(Readable)、可写流(Writable)和双向流(Duplex / Transform)。其中,Duplex
类似于同时实现了Readable
和Writable
两个接口的流,而Transform
类似于Duplex
,但其中Writable
和Readable
之间进行的数据转换基于某种转换算法。
Stream的使用
除了使用fs的API,我们还可以使用Stream对文件进行读取、写入和修改。
以下是一个流式读取文件的示例代码:
const fs = require('fs');
const stream = fs.createReadStream('file.txt', { encoding: 'utf-8' });
stream.on('data', function(chunk) {
console.log(chunk);
});
stream.on('end', function() {
console.log('读取完成');
});
上述代码中,fs.createReadStream
方法用于创建一个可读流,并指定文件路径和编码方式。通过绑定data
事件可以实现对读取数据的处理,end
事件在读取完成时触发。
以下是一个流式写入文件的示例代码:
const fs = require('fs');
const stream = fs.createWriteStream('output.txt', {flags: 'a'});
stream.write('Hello, World!');
stream.end();
上述代码中,fs.createWriteStream
方法用于创建一个可写流,并指定文件路径和写入方式。通过write
方法写入数据,最后end
方法表示写入完成。
以上就是对Node.js文件系统和流的详解攻略,希望能够对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解nodeJs文件系统(fs)与流(stream) - Python技术站