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