HH123_3 2023-07-11 08:25 采纳率: 86.8%
浏览 45
已结题

讨论问题:如何使用nodejs来计算一个文件的行数?

讨论问题:如何使用nodejs来计算一个文件的行数?
程序框架如下,我们需要实现countLines函数

import fs from "fs";

const files = process.argv.slice(2);

function countLines(fileName) {
 // You code 
}
let total = 0;
for (const fileName of files) {
  const num = countLines(fileName);
  total += num;
  console.log(fileName, num);
}
console.log("total", total);

方法一:

function countLines(fileName) {
  const data = fs.readFileSync(fileName, "utf-8");
  return data.split(/\r?\n/).length;
}
  1. 使用同步读文件方法,获取文件的全部数据
  2. 使用/\r?\n/来拆分出所有的行,结果存储在一个矩阵中,该矩阵的长度即为文件的行数。

缺点:需要读取全部的文件,如果文件比较大的话,需要耗费的时间比较多。
还有其他比较好的方法吗?

  • 写回答

5条回答 默认 最新

  • threenewbee 2023-07-11 08:43
    关注

    文本文件无论什么方法,都需要遍历文件,但是没必要全部读取和拆分,只要累加所有的\r\n(其实只要全部累加\n也行了),行数等于换行符+1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 12月17日
  • 已采纳回答 12月9日
  • 创建了问题 7月11日

悬赏问题

  • ¥20 有偿,学生成绩信息管理系统
  • ¥15 Arduino电机和openmv连接异常
  • ¥15 Arcgis河网分级报错
  • ¥200 java+appium2.1+idea
  • ¥20 请帮我做一个EXE的去重TXT文本
  • ¥15 工价表引用工艺路线,应如何制作py和xml文件
  • ¥15 根据历史数据,推荐问题类型
  • ¥15 需要仿真图,简单的二阶系统实例
  • ¥15 stm32光控照明仿真
  • ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列