我目前有一些代码允许用户选择本地文件,将该文件作为文本读入,然后将该文本输出到textarea。但是,我想只阅读前N行,因为文件可能会大于10GB。
我知道可以将文件blob作为字节范围读取,但我想知道我是否可以以相同的方式读取文本文件行。这是我目前的代码:
<input type="file" id="files" name="file" /><br>
<script>
function handleFileSelect(evt) {
var files = document.getElementById('files').files;
if (!files.length) {
alert('Please select a file!');
return;
}
var file = files[0];
var reader = new FileReader();
reader.onloadend = function(evt) {
if (evt.target.readyState == FileReader.DONE) { // DONE == 2
document.getElementById('myInput').textContent = evt.target.result;
}
};
reader.readAsText(file, "UTF-8");
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
......我看到过这样的事情被使用了:
var blob = file.slice(startingByte, endindByte);
reader.readAsBinaryString(blob);
...但想要行而不是字节范围。谢谢!