在Node.js中如何读取文件?

6
在Node.js中,我想读取一个文件,然后通过\n分隔每行并使用console.log()打印出来。我应该怎么做?
4个回答

7

试试这个:

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);
  });
});

1

1
请参考 node.js 中的 文件系统 API,Stack Overflow 上也有一些类似的问题,其中一个是这样的。

0

在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.txtread.js的目录,然后键入node read.js并按Enter键。您应该看到结果在屏幕上记录下来。恭喜!您已经使用Node读取了一个文件!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接