我目前有一些代码允许用户选择本地文件,将该文件作为文本读取,然后将该文本输出到文本区域。但是,我只想读取前 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);
...但想要行而不是字节范围。谢谢!