J.J*_*J.J 1 javascript html5 filereader
现在许多浏览器都支持使用HTML5的FileReader读取本地文件,这为超出"数据库前端"的网站打开了大门,这些脚本可以对本地数据执行一些有用的操作,而无需先将其发送到服务器.
在上传前预处理图像和视频,FileReader的一个大应用是将数据从某种磁盘表(CSV,TSV等)加载到浏览器中进行操作 - 可能用于D3.js中的绘图或分析或在WebGL中创建景观.
问题是,StackOverflow和其他站点上的大多数示例都使用FileReader的.readAsText()属性,该属性在返回结果之前将整个文件读入RAM.
要在不将数据加载到RAM的情况下读取文件,需要使用.readAsArrayBuffer(),这个SO帖子是最接近我能得到一个好答案的:
然而,这个特定问题有点过于具体,而且说实话,我可以尝试好几天让解决方案更加通用,然后空手而归,因为我不明白块大小的重要性或为什么Uint8Array是用过的.使用用户可定义的行分隔符逐行读取文件的更一般问题的解决方案(理想情况下使用.split(),因为它也接受正则表达式),然后按行执行某些操作(例如将其打印到console.log)是理想的.
我在下面的Gist URL上创建了一个LineReader类.正如我在评论中提到的,使用除LF,CR/LF和CR之外的其他行分隔符是不常见的.因此,我的代码只将LF和CR/LF视为行分隔符.
https://gist.github.com/peteroupc/b79a42fffe07c2a87c28
例:
new LineReader(file).readLines(function(line){
console.log(line);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1462 次 |
最近记录: |