我试图将一个文本文件加载到我的JavaScript文件中,然后读取该文件中的行以获取信息,我尝试了FileReader,但它似乎不起作用。有人可以帮助吗?
function analyze(){
var f = new FileReader();
f.onloadend = function(){
console.log("success");
}
f.readAsText("cities.txt");
}
我试图将一个文本文件加载到我的JavaScript文件中,然后读取该文件中的行以获取信息,我尝试了FileReader,但它似乎不起作用。有人可以帮助吗?
function analyze(){
var f = new FileReader();
f.onloadend = function(){
console.log("success");
}
f.readAsText("cities.txt");
}
7条答案
按热度按时间js81xvg61#
是的,这是可能的FileReader,我已经做了一个例子,这是代码:
它也可以做同样的事情,以支持一些旧版本的IE(我认为6-8)使用ActiveX对象,我有一些旧的代码,这也做了,但它已经有一段时间了,所以我必须挖掘它,我已经找到了一个解决方案类似于我使用的礼貌Jacky Cui's blog和编辑这个答案(也清理代码一点)。希望它有帮助。
最后,我刚刚读了一些其他的答案,但正如他们所建议的,你可能正在寻找代码,让你从JavaScript文件所在的服务器(或设备)加载文本文件。如果是这种情况,那么你希望 AJAX 代码动态加载文档,这将是如下所示:
wtzytmuj2#
这可以很容易地使用javascript XMLHttpRequest()类( AJAX )完成:
mzsu5hc03#
出于安全原因,Javascript无法访问用户的文件系统。
FileReader
仅用于用户手动选择的文件。rqqzpn5f4#
(fiddle:https://jsfiddle.net/ya3ya6/7hfkdnrg/2/)
1.用途
Html:
Js:
x0fgdtte5#
我的榜样
cbeh67ev6#
这是一个老问题,但我认为在2022年,ES6可以解决这个问题:
如果您的文件是使用
UTF-8
编码的,那么我们可以使用Blob.text()
进行async
调用注意:
processTextByLine()
函数是不需要的,它只是显示了一个情况下,如果我们需要处理的文件逐行。t5fffqht7#
这是我发现的最简单的方法。
HTML:
JS: