在JavaScript中,Stream(流)是一种处理数据的方式,它允许数据在生产者和消费者之间逐块传输,而不是一次性加载到内存中。这种方式特别适合处理大量数据或网络传输的数据。
fs.createReadStream
和fs.createWriteStream
进行大文件的复制。以下是一个简单的文件复制示例,使用Node.js的流:
const fs = require('fs');
// 创建可读流和可写流
const readStream = fs.createReadStream('source.txt');
const writeStream = fs.createWriteStream('destination.txt');
// 使用管道连接可读流和可写流
readStream.pipe(writeStream);
// 监听事件
readStream.on('end', () => {
console.log('文件复制完成');
});
readStream.on('error', (err) => {
console.error('读取文件出错:', err);
});
writeStream.on('error', (err) => {
console.error('写入文件出错:', err);
});
sequence
事件或highWaterMark
选项来控制缓冲区大小。objectMode
选项处理对象流,确保对象的顺序。readStream.destroy()
和writeStream.destroy()
。error
事件,及时处理错误,避免资源未释放。highWaterMark
选项,控制缓冲区大小,避免内存占用过高。pipeline
方法代替pipe
,可以更好地管理流的生命周期和错误处理。通过合理使用流,可以显著提高JavaScript应用的性能和可维护性。
领取专属 10元无门槛券
手把手带您无忧上云