Javascript 使用createReadStream读取区块中的大文件
此方法的问题在于它没有设置正确的起点和终点偏移。它在添加整个开始/结束偏移量后启动“数据”事件。尽管在调试时,它以预期的方式工作。这是因为Javascript 使用createReadStream读取区块中的大文件,javascript,node.js,fs,Javascript,Node.js,Fs,此方法的问题在于它没有设置正确的起点和终点偏移。它在添加整个开始/结束偏移量后启动“数据”事件。尽管在调试时,它以预期的方式工作。这是因为readableStream.on是异步的,它不会立即工作。循环可能会在第一个readableStream.on调用完成工作之前不断地进行。是否有方法修复它?还有别的选择吗?谢谢对不起,我对nodejs不是很熟悉,更不用说createReadStream。我来看看是否能想出一个办法,但请不要抱太大希望。为什么不使用fs.readFile?这有帮助吗? var
readableStream.on
是异步的,它不会立即工作。循环可能会在第一个readableStream.on
调用完成工作之前不断地进行。是否有方法修复它?还有别的选择吗?谢谢对不起,我对nodejs不是很熟悉,更不用说createReadStream
。我来看看是否能想出一个办法,但请不要抱太大希望。为什么不使用fs.readFile
?这有帮助吗?
var data = '';
var startOffSet = 0;
var endOffSet = 0;
do {
if (fileSizeInBytes >= 64000 && fileSizeInBytes - endOffSet >= 64000) {
endOffSet += 64000;
} else {
endOffSet += fileSizeInBytes - endOffSet - 1;
inProcess = false;
}
startOffSet += 64000;
var readableStream = fs.createReadStream('fileName', { start: startOffSet, end: endOffSet });
readableStream.on('data', function(chunk) {
data += chunk;
});
} while (fileSizeInBytes > endOffSet + 2);