TypeScript:
Чтение текстового файла

Как это сделать:

Давайте прочитаем текстовый файл на TypeScript с использованием модуля fs/promises в Node.js. Сделаем этот пример простым: прочитаем файл с именем example.txt и выведем его содержимое в лог.

import { readFile } from 'fs/promises';

async function readTextFile(filePath: string) {
  try {
    const data = await readFile(filePath, 'utf8');
    console.log(data);
  } catch (error) {
    console.error(`Ошибка чтения файла с диска: ${error}`);
  }
}

readTextFile('./example.txt');

Пример вывода:

Привет, это содержимое файла!

Подробнее

Исторически чтение файлов в Node.js базировалось на использовании обратных вызовов (callbacks), что могло привести к явлению, известному как «ад обратных вызовов». С появлением Promises и async/await этот процесс стал значительно более структурированным.

Помимо fs/promises, существует старый модуль fs, который по-прежнему работает с паттернами обратных вызовов. Также существует возможность использовать обработку потоков с помощью fs.createReadStream(), что полезно для больших файлов из-за меньшего потребления памяти.

С точки зрения реализации, доступ к файловой системе является операцией ввода/вывода и по своей природе медленнее операций в памяти. Вот почему важны асинхронные модели кодирования — они помогают предотвращать блокировку главного потока и позволяют Node.js продолжать обрабатывать другие задачи.

Смотрите также

Для более глубокого изучения файловой системы Node.js: