Метод open

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

Синтаксис

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

Пример

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

javascriptimport 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:

javascriptimport 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 прочитаем содержимое файла:

javascriptimport 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:

javascriptimport 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,
    который синхронно закрывает файловый дескриптор