需求:
node读取6G的二进制文件。
解决方式:
使用文件流读取
实现:
let reader = fs.createReadStream(fileUrl, { // 将文件读取为文件流
highWaterMark: POINTBUFFERLENGTH, // 一次读取的字节数
});
// 每次读取都会触发data事件
reader.on("data", (data: Buffer) => {
// do something ... ...
});
// 全部读取完之后数据流关闭触发close事件
reader.on("close", () => {
const { data, list } = computed(bufferList, v, tempPointListData);
const res: any = {
data: data,
pointListData: tempPointListData,
};
pointList.push(list);
result.push(res); // 一个文件的数据
resolve(res);
});