Подсчет строк файла в TypeScript: различные подходы к выполнению работы

В этой статье блога мы рассмотрим различные методы подсчета количества строк в файле с помощью TypeScript. Независимо от того, являетесь ли вы новичком или опытным разработчиком, эти подходы помогут вам эффективно решать задачи манипулирования файлами в ваших проектах TypeScript. Итак, давайте углубимся и откроем для себя несколько полезных приемов!

Метод 1: использование модуля Readline
Один из самых простых способов подсчета строк в файле — использование встроенного модуля Readline в Node.js. Вот пример того, как это можно реализовать:

import * as fs from 'fs';
import * as readline from 'readline';
function countLines(fileName: string): Promise<number> {
  return new Promise((resolve, reject) => {
    const lineReader = readline.createInterface({
      input: fs.createReadStream(fileName),
    });
    let lineCount = 0;
    lineReader.on('line', () => {
      lineCount++;
    });
    lineReader.on('close', () => {
      resolve(lineCount);
    });
    lineReader.on('error', (err) => {
      reject(err);
    });
  });
}
// Usage:
countLines('path/to/file.txt')
  .then((lines) => console.log(`Number of lines: ${lines}`))
  .catch((err) => console.error(err));

Метод 2: использование ReadStream
Другой подход заключается в использовании ReadStream из модуля fs для чтения файла по частям и подсчета количества символов новой строки. Вот пример:

import * as fs from 'fs';
function countLines(fileName: string): Promise<number> {
  return new Promise((resolve, reject) => {
    const readStream = fs.createReadStream(fileName, {
      encoding: 'utf8',
    });
    let lineCount = 0;
    readStream.on('data', (chunk) => {
      lineCount += chunk.split('\n').length - 1;
    });
    readStream.on('end', () => {
      resolve(lineCount);
    });
    readStream.on('error', (err) => {
      reject(err);
    });
  });
}
// Usage:
countLines('path/to/file.txt')
  .then((lines) => console.log(`Number of lines: ${lines}`))
  .catch((err) => console.error(err));

Метод 3. Использование API синхронизации файловой системы.
Если вы предпочитаете синхронный подход, вы можете использовать функцию readFileSync из модуля fs, чтобы прочитать весь файл и подсчитать количество символов новой строки:

import * as fs from 'fs';
function countLinesSync(fileName: string): number {
  const fileContent = fs.readFileSync(fileName, 'utf8');
  const lineCount = fileContent.split('\n').length;
  return lineCount;
}
// Usage:
const lines = countLinesSync('path/to/file.txt');
console.log(`Number of lines: ${lines}`);

В этой статье мы рассмотрели три различных метода подсчета количества строк в файле с помощью TypeScript. Мы использовали модуль Readline, ReadStream и API синхронной файловой системы. В зависимости от ваших требований и стиля кодирования вы можете выбрать наиболее подходящий подход для вашего проекта.

Не забывайте правильно обрабатывать случаи ошибок и оптимизировать код в соответствии с вашими конкретными потребностями. Теперь у вас есть инструменты для эффективного подсчета строк в файлах, так что смело приступайте к выполнению задач по манипулированию файлами!