我有一个包含文本数据的 1GB 文件。我需要使用浏览器 JavaScript 将 N 字节开始的 100 字节加载到内存中。 我该怎么做?
最佳答案
使用文件 API:
function fileReaderApiSupported() {
return (window.File && window.FileReader && window.FileList && window.Blob);
}
function readNBytesOfFile(size, inputId) {
if (!fileReaderApiSupported()) {
alert('FileReader API unsupported');
return;
}
var readFrom = document.getElementById(inputId);
if (!readFrom || !readFrom.files || !readFrom.files.item(0)) {
alert('No file');
return;
}
var countOfBytesToRead = parseInt(size);
var readFromFile = readFrom.files.item(0);
var fileReader = new FileReader();
var chunk = readFromFile.slice(0, countOfBytesToRead);
fileReader.onload = function() {
var result = fileReader.result;
document.getElementById('result').innerText = result;
};
fileReader.readAsText(chunk);
}
<input id="my-file-input" type="file">
<button onclick="readNBytesOfFile(100, 'my-file-input')">READ</button>
<hr/>
<div id="result"></div>
还可以使用LineReader按 block 读取,并在100字节后停止读取。
关于javascript - 如何使用 JavaScript 加载大文件的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32216897/