nodejs 把一个zip文件读到内存中输出一个buf 完整代码
时间: 2024-10-22 18:17:50 浏览: 19
nodejs简单实现一个爬虫代码
在Node.js中,你可以使用`zlib`模块来解压zip文件并将其内容读入内存,然后将结果转换为Buffer。下面是一个简单的完整代码示例:
```javascript
const fs = require('fs');
const zlib = require('zlib');
// 读取zip文件
async function readZipToBuf(filePath) {
try {
const fileStream = fs.createReadStream(filePath);
const gunzip = zlib.createGunzip();
// 将zip内容流解压到临时Buffer
const unzipBuf = [];
fileStream.pipe(gunzip).on('data', (chunk) => unzipBuf.push(chunk));
await new Promise((resolve, reject) => gunzip.on('end', resolve)); // 等待解压完成
// 合并所有小块数据成一个完整的Buffer
const zipContentBuf = Buffer.concat(unzipBuf);
return zipContentBuf;
} catch (error) {
console.error('Error reading and unzipping file:', error);
throw error;
}
}
// 使用示例
readZipToBuf('./path/to/your.zip')
.then(buf => {
// 打印或进一步处理Buffer
console.log(`Unzipped content as a buffer:`, buf.toString('hex')); // 可视化Buffer内容
})
.catch(err => console.error('Failed to process zip file:', err));
阅读全文