АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
9 of 184 menu

Метод open

Метод open открывает файл и возвращает объект класса FileHandle. В первом параметре метода указывается путь к файлу, который мы хотим открыть. Во втором необязательном параметре задаем флаг - это строка или число, которое указывает операцию, в которой файл должен быть открыт. По умолчанию флаг равен 'r'. В третьем необязательном параметре можно задать режим взаимодействия с файлом, по умолчанию он равен 'чтение-запись'. В четвертом необязательном параметре указываем коллбэк, который в свою очередь принимает параметры err (ошибка) и fd (файловый дескриптор).

Синтаксис

fs.open(путь к файлу, [флаги], [режим], [коллбэк]);

Пример

Давайте асинхронно откроем файл через await, а затем с помощью метода FileHandle.readFile прочитаем его содержимое:

import fs from 'fs/promises'; try { let filehandle = await fs.open('file.txt'); let data = await filehandle.readFile('utf-8') console.log(data); } catch (err) { console.log(err); }

Пример

Теперь давайте асинхронно откроем и прочитаем файл через then:

import fs from 'fs/promises'; fs.open('file.txt').then((filehandle) => { filehandle.readFile('utf-8').then(data => { console.log(data); }) }).catch((err) => { console.log(err); });

Пример

Давайте асинхронно откроем и прочитаем файл из предыдущих примеров через коллбэк. Вначале мы создаем буфер, а затем через параметр коллбэка fd прочитаем содержимое файла:

import fs from 'fs'; const buffer = new Buffer.alloc(1024); fs.open('file.txt', function(err, fd) { if (!err) { fs.readSync(fd, buffer); let data = buffer.toString('utf8'); console.log(data); } else { console.log(err); } });

Пример

Теперь давайте синхронно откроем и прочитаем файл через openSync:

import fs from 'fs'; let fileDescriptor = fs.openSync('file.txt'); const buffer = new Buffer.alloc(1024); try { fs.readSync(fileDescriptor, buffer); let data = buffer.toString('utf8'); console.log(data); } catch (err) { console.log(err); }

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

  • метод opendir,
    который открывает папку
  • метод createReadStream,
    открывает поток для чтения данных
  • метод createWriteStream,
    который открывает поток для записи данных
  • метод closeSync,
    который синхронно закрывает файловый дескриптор