Node.js 节点学校IO练习3
我已经开始学习node.js 我目前正在练习3,其中我们必须根据文件缓冲区计算新行字符数“\n” 我通过了测试程序,但是如果我创建了自己的file.txt文件,我就能够获得缓冲区并打印出字符串,但是它无法计算新行数(console.log(newLineNum))返回0 这是密码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
//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”