Node.js 节点学校IO练习3

Node.js 节点学校IO练习3,node.js,Node.js,我已经开始学习node.js 我目前正在练习3,其中我们必须根据文件缓冲区计算新行字符数“\n” 我通过了测试程序,但是如果我创建了自己的file.txt文件,我就能够获得缓冲区并打印出字符串,但是它无法计算新行数(console.log(newLineNum))返回0 这是密码 //import file system module var fs = require("fs"); //get the buffer object based on argv[2] var buf = fs.r

我已经开始学习node.js

我目前正在练习3,其中我们必须根据文件缓冲区计算新行字符数“\n”

我通过了测试程序,但是如果我创建了自己的file.txt文件,我就能够获得缓冲区并打印出字符串,但是它无法计算新行数(console.log(newLineNum))返回0

这是密码

//import file system module 
var fs = require("fs");

//get the buffer object based on argv[2]
var buf = fs.readFileSync(process.argv[2]);

//convert buffer to string
var str_buff = buf.toString();

//length of str_buff
var str_length = str_buff.length;

var numNewLines = 0; 

for (var i = 0; i < str_length; i ++)
{
    if(str_buff.charAt(i) == '\n')
    {
        numNewLines++;
    }
}

console.log(numNewLines);
//导入文件系统模块
var fs=要求(“fs”);
//基于argv[2]获取缓冲区对象
var buf=fs.readFileSync(process.argv[2]);
//将缓冲区转换为字符串
var str_buff=buf.toString();
//stru_buff的长度
var str_length=str_buff.length;
var numNewLines=0;
对于(变量i=0;i
如果我正确理解了您的问题,您正在尝试获取当前文件的行长度

从:

第一个元素是“节点”,第二个元素是名称 JavaScript文件的

因此,您应该将
process.argv[2]
替换为
process.argv[1]

编辑:

如果要在命令行上传递文件名的参数,如:

node server.py 'test.txt'

您的代码应该可以正常工作。

您的代码很好。您应该检查用于输入的文件。

我的文件只是一个.txt文件,其内容为:asdfadfasdfas\nasdfkjasdlfka\naskdfjldskfjasd\na;sdlkfjadsf(请注意\n)。我的第二个参数就是“path/to/file”