在Node.js中,我想读取一个文件,然后通过
\n
分隔每行并使用console.log()
打印出来。我应该怎么做?\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);
});
});
在Node中有许多读取文件的方法。您可以在有关文件系统模块fs
的Node文档中了解所有这些方法。
在您的情况下,假设您想要读取一个简单的文本文件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
变量中,否则,结果将存储在data
变量中。您可以在此处记录data
变量以查看正在处理的内容;fs.readFile('countries.txt','utf8', function (err, data) {
console.log(data);
});
Uruguay
Chile
Argentina
New Zealand
我认为这就是你想要的。你的输入是通过换行符 (\n
) 分隔的,输出也将是如此,因为 readFile
不会改变文件的内容。如果你想的话,在记录结果之前可以对文件进行更改;
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');
});
});
然后您可以在终端中运行该脚本。导航到包含countries.txt
和read.js
的目录,然后键入node read.js
并按Enter键。您应该看到结果在屏幕上记录下来。恭喜!您已经使用Node读取了一个文件!