相关疑难解决方法(0)

在客户端JavaScript中读取逐行文件

你可以帮我解决以下问题.

目标

在客户端(通过JS和HTML5类在浏览器中)逐行读取文件,而不将整个文件加载到内存中.

脚本

我正在处理网页,它应解析客户端的文件.目前,我正在阅读本文中描述的文件.

HTML:

<input type="file" id="files" name="files[]" />
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$("#files").on('change', function(evt){
    // creating FileReader
    var reader = new FileReader();

    // assigning handler
    reader.onloadend = function(evt) {      
        lines = evt.target.result.split(/\r?\n/);

        lines.forEach(function (line) {
            parseLine(...);
        }); 
    };

    // getting File instance
    var file = evt.target.files[0];

    // start reading
    reader.readAsText(file);
}
Run Code Online (Sandbox Code Playgroud)

问题是FileReader立即读取整个文件,这会导致大文件崩溃的选项卡(大小> = 300 MB).使用reader.onprogress不能解决问题,因为它只会增加结果,直到它达到极限.

发明一个轮子

我已经在互联网上做了一些研究,并没有找到任何简单的方法来做到这一点(有很多文章描述了这个确切的功能,但在服务器端为node.js).

作为解决它的唯一方法,我只看到以下内容:

  1. 按块拆分文件(通过File.split(startByte, endByte)方法)
  2. 在该块中找到最后一个新行字符('/ n')
  3. 读取除最后一个新行字符后的部分以外的那个块,并将其转换为字符串并按行分割
  4. 从第2步中找到的最后一个新行字符开始读取下一个块

但我最好使用现有的东西来避免熵增长.

html javascript html5 client-side filereader

22
推荐指数
2
解决办法
3万
查看次数

如何在 JavaScript 中逐行读取文本文件?

我需要用 JavaScript 逐行读取文本文件。

我可能想对每一行做一些事情(例如跳过或修改它)并将该行写入另一个文件。但具体行动超出了这个问题的范围。

有很多类似措辞的问题,但大多数实际上是一步将整个文件读取到内存中,而不是逐行读取。因此这些解决方案不适用于较大的文件。

javascript file-io node.js

14
推荐指数
2
解决办法
1万
查看次数

如何使用html/javascript逐行读取/解析文本文件?

我试图解析一个文本文件,其中包含一堆测试问题/答案代码多选测试者.

问题和答案都是分开的,所以我需要逐行阅读每个文件,并通过使用html/javascript/jquery以某种方式解析它.

我该怎么做?谢谢!

文本文件的扩展名为.dat,但实际上是一个文本文件.它只是这些格式的来源,有太多不能改变... http://www.mediafire.com/?17bggsa47u4ukmx

html javascript file-io html5 file

2
推荐指数
1
解决办法
1万
查看次数

如何在 Vanilla JavaScript 中逐行读取文件?

我有一个我想阅读的文件(words.txt)。我想将它保存在一个数组中,但它太长,无法包含在文件中,所以我将它放在一个单独的文件中。我可以使用 URL 来获取它,但我也将该文件与 javascript 文件放在同一文件夹中。如果不使用 jQuery 或 Node.js,最简单的方法是什么?

javascript file

0
推荐指数
1
解决办法
2306
查看次数

标签 统计

javascript ×4

file ×2

file-io ×2

html ×2

html5 ×2

client-side ×1

filereader ×1

node.js ×1