将本地文本文件读入 JavaScript 数组 [重复]
Posted
技术标签:
【中文标题】将本地文本文件读入 JavaScript 数组 [重复]【英文标题】:Reading local text file into a JavaScript array [duplicate] 【发布时间】:2016-04-23 18:50:44 【问题描述】:我在我的 javascript 文件所在的文件夹中有一个文本文件。这两个文件都存储在我的本地机器上。 .txt 文件每行一个单词,如:
red
green
blue
black
我想读取每一行并将它们尽可能高效地存储在 JavaScript 数组中。你是怎么做到的?
【问题讨论】:
这个“Javascript - 读取本地文本文件”问题/答案看起来是个不错的起点:***.com/questions/14446447/… 你的 JavaScript 运行的是什么?它是否嵌入在网页中? “本地”是指“在同一个 HTTP 主机上”吗?还是您使用 Windows Scripting Host 运行它?还是 Node.js?并且想要访问您的文件系统而不是通过 HTTP 访问? 是服务器端(节点)还是客户端(网络浏览器)?对于客户端编码,您不能这样做。 我在本地只有 .js 文件和 .txt 文件。我试图先让它在本地工作,然后再将其部署到网络上……但听起来它不能在本地工作? @dan-man,我看到了 Marc 发布的链接解决方案。我是否需要通过 http 进行通信才能读取 txt 文件?不过,该解决方案似乎已经部署在网络上。 【参考方案1】:使用 Node.js
同步模式:
var fs = require("fs");
var text = fs.readFileSync("./mytext.txt");
var textByLine = text.split("\n")
异步模式:
var fs = require("fs");
fs.readFile("./mytext.txt", function(text)
var textByLine = text.split("\n")
);
更新
至少从节点 6 开始,readFileSync
返回 Buffer
,因此必须首先将其转换为字符串才能使 split
工作:
var text = fs.readFileSync("./mytext.txt").toString('utf-8');
或者
var text = fs.readFileSync("./mytext.txt", "utf-8");
【讨论】:
如何将它们放入数组中? Split函数返回一个数组,而textByLine已经是一个数组 这似乎不适用于节点 6,它返回Buffer
这给了我一个“未捕获的 ReferenceError:require is not defined”!我错过了什么?
这个问题显然没有说明正在使用 Node.js。这个答案是 Node.js 的答案。以上是关于将本地文本文件读入 JavaScript 数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
将 PHP Div 值读入 $variable 并在 Javascript 中将上传文件的文件名读入数组