1

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

...但想要行而不是字节范围。谢谢!

4

0 回答 0