如何在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方法的结果进行交互。 如果出现错误,结果将被存储在errvariables中,否则结果将被存储在datavariables中。 你可以在这里logindatavariables来查看你正在使用的是什么;

 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.txtread.js的目录,然后inputnode read.js并按回车。 您应该看到在屏幕上注销的结果。 恭喜! 你已经阅读了一个节点的文件!

Interesting Posts