如何在Node.js中读取文件?
在Node.js中,我想读一个文件,然后用\n
分隔文件的每一行console.log()
。 我怎样才能做到这一点?
尝试这个:
var fs=require('fs'); fs.readFile('/path/to/file','utf8', function (err, data) { if (err) throw err; var arr=data.split('\n'); arr.forEach(function(v){ console.log(v); }); });
尝试阅读fs
模块文档 。
请参阅node.js中的文件系统 API,在SO上也有类似的问题,其中有一个
有很多方法可以在Node中读取文件。 您可以在Node文档中了解关于文件系统模块fs
。
在你的情况下,假设你想读一个简单的文本文件,像这样的countries.txt
;
Uruguay Chile Argentina New Zealand
首先,你必须在你的JavaScript文件的顶部require()
fs
模块,就像这样;
var fs = require('fs');
然后用它读取你的文件,你可以使用fs.readFile()
方法,就像这样;
fs.readFile('countries.txt','utf8', function (err, data) {});
现在,在{}
内部,可以与readFile
方法的结果进行交互。 如果出现错误,结果将被存储在err
variables中,否则结果将被存储在data
variables中。 你可以在这里logindata
variables来查看你正在使用的是什么;
fs.readFile('countries.txt','utf8', function (err, data) { console.log(data); });
如果你这样做,你应该得到在您的terminal文本文件的确切内容;
Uruguay Chile Argentina New Zealand
我想这就是你想要的。 你的input被换行符分开( \n
),输出也是一样,因为readFile
不会改变文件的内容。 如果需要,可以在logging结果之前对文件进行更改;
fs.readFile('calendar.txt','utf8', function (err, data) { // Split each line of the file into an array var lines=data.split('\n'); // Log each line separately, including a newline lines.forEach(function(line){ console.log(line, '\n'); }); });
这将在每行之间添加一个额外的换行符;
Uruguay Chile Argentina New Zealand
您还应该考虑在读取文件时发生的任何可能的错误,方法是在第一次访问data
之前添加if (err) throw err
。 你可以把所有的代码放在一个叫做read.js
的脚本中,
var fs = require('fs'); fs.readFile('calendar.txt','utf8', function (err, data) { if (err) throw err; // Split each line of the file into an array var lines=data.split('\n'); // Log each line separately, including a newline lines.forEach(function(line){ console.log(line, '\n'); }); });
然后,您可以在terminal中运行该脚本。 导航到包含countries.txt
和read.js
的目录,然后inputnode read.js
并按回车。 您应该看到在屏幕上注销的结果。 恭喜! 你已经阅读了一个节点的文件!