Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用createReadStream读取区块中的大文件_Javascript_Node.js_Fs - Fatal编程技术网

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);