将本地文本文件读入 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 数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将文本文件逐行读入并行数组C++

将 PHP Div 值读入 $variable 并在 Javascript 中将上传文件的文件名读入数组

将文本文件读入结构化 2D numpy 数组

c++ 将文本文件中的 3 列读入 2D 数组或 3 个单独的数组

无法将文本文件读入所需的数组格式

从文本文件中将数据读入 numpy 数组