到目前为止,我的文件阅读器api代码一直运行良好,直到有一天我从我的一个客户端获得了一个280MB的txt文件.页面只是在Chrome中直接崩溃,在Firefox中没有任何反应.
// create new reader object
var fileReader = new FileReader();
// read the file as text
fileReader.readAsText( $files[i] );
fileReader.onload = function(e)
{ // read all the information about the file
// do sanity checks here etc...
$timeout( function()
{
// var fileContent = e.target.result;
// get the first line
var firstLine = e.target.result.slice(0, e.target.result.indexOf("\n") ); }}
Run Code Online (Sandbox Code Playgroud)
我上面要做的是获取第一个换行符,以便我可以获得文件的列长度.我不应该把它看作文字吗?如何在不破坏大文件页面的情况下获取文件的列长度?
我有很长的文件需要解析.因为它很长,我需要通过块来做大块.我试过这个:
function parseFile(file){
var chunkSize = 2000;
var fileSize = (file.size - 1);
var foo = function(e){
console.log(e.target.result);
};
for(var i =0; i < fileSize; i += chunkSize)
{
(function( fil, start ) {
var reader = new FileReader();
var blob = fil.slice(start, chunkSize + 1);
reader.onload = foo;
reader.readAsText(blob);
})( file, i );
}
}
Run Code Online (Sandbox Code Playgroud)
运行后我只看到控制台中的第一个块.如果我将'console.log'更改为jquery附加到某个div,我只看到该div中的第一个块.其他块怎么样?如何使它工作?