Как взаимодействовать с файловыми дескрипторами в Node.js?

Kak Vzaimodejstvovat S Fajlovymi Deskriptorami V Node Js



В Node.js « дескриптор файла ” — это просто неотрицательный целочисленный индекс в таблице дескрипторов файлов. Таблица файловых дескрипторов представляет собой массив внутри « Печатная плата (блок управления процессом) », который хранит записи всех процессов операционной системы. Он действует как ссылка на открытый файл, которая используется для простой идентификации открытого файла или доступа к нему в операционной системе. После доступа к открытому файлу через « дескриптор файла », то пользователь может выполнить с ним желаемую операцию в соответствии с требованиями.

Эта статья покажет, как пользователь может взаимодействовать с файловыми дескрипторами в Node.js.







Как взаимодействовать с файловыми дескрипторами в Node.js?

Пользователь может взаимодействовать с файловыми дескрипторами, получая их с помощью приведенных ниже предопределенных методов « фс » модуль:



Давайте подробно остановимся на этих методах один за другим.



Способ 1: используйте «fs.open()» для получения дескриптора файла

« фс.открыть ()» — наиболее часто используемый метод « фс », который асинхронно открывает файл для выполнения нескольких операций, таких как чтение, запись, переименование, обновление и удаление. Более того, он также возвращает « дескриптор файла » после выполнения определенной операции над открытым файлом через функцию обратного вызова.





Синтаксис

Основной синтаксис « фс.открыть ()» описан ниже:

фс. открыть ( имя файла , флаги , режим , перезвонить )

Согласно приведенному выше синтаксису, « фс.открыть ()» поддерживает следующие параметры:



  • имя файла : указывает имя, а также путь к конкретному файлу, который пользователь хочет открыть.
  • флаги : обозначает операции, которые будут выполнены с открытым файлом. Его значение по умолчанию — «r(read)».
  • режим : указывает права доступа к файлу, который « 0o666 (доступен как для чтения, так и для записи) ' по умолчанию.
  • перезвонить : выполняется после завершения « фс.открыть ()». Он поддерживает « ошибаться ” параметр, который выдает ошибку, если она возникает во время выполнения метода и 'данные' параметр, который возвращает « fd(дескриптор файла) » для доступа к открытому файлу.

Возвращаемое значение: « фс.open() ” дает дескриптор файла в качестве возвращаемого значения.

Различные доступные флаги, используемые вместе с файловыми дескрипторами в Node.js

Все типы флагов, которые « фс.open() Поддержка методов для выполнения желаемых операций над открытым файлом перечислена ниже:

Флаги Описание
В Он используется для записи содержимого в открытый файл, без его представления будет создан новый файл.
ш+ Он используется для открытия файла для выполнения над ним операций чтения и записи.
шх Это работает так же, как « В ». Однако он не создает указанный файл, если его нет в файловой системе.
шх+ Это то же самое, что « ш+ Однако это не удастся, если файл не существует.
р Он открывает файл для его чтения, а также создает новый файл, если он отсутствует.
р+ Он открывает файл в режиме чтения и записи.
rs+ Он синхронно открывает файл для выполнения задач чтения и записи в него.
а Он открывает файл для добавления его содержимого.
а+ Он открывает файл для чтения и добавления его содержимого.
топор Это то же самое, что « а », но он не создает новый файл, если он не был последним в файловой системе.
топор+ Это работает так же, как « а+ Однако он не создает новый файл.

После получения основ « фс.открыть ()» перейдем к его практической реализации для получения дескриптора файла.

Пример: применение метода «fs.open()» для получения дескриптора файла с флагом по умолчанию

В этом примере показано, как применяется «фс.открыть()» метод открытия указанного файла для чтения и возврата дескриптора файла:

константа фс '=' требовать ( 'фс' ) ;
был рез '=' фс. открыть ( 'файл.txt' , 'р' , функция ( ошибаться , ФД ) {
если ( ошибаться ) {
консоль. ошибка ( ошибаться ) ;
} еще {
консоль. бревно ( «Файл открыт!» ) ;
консоль. бревно ( ФД ) ; }
} ) ;

Объяснение приведенного выше блока кода следующее:

  • Во-первых, « требовать ()» импортирует « фс (файловая система) » модуль.
  • Далее « фс.открыть ()» указывает желаемое имя папки, флаг по умолчанию « р » и функцию обратного вызова в качестве первого, второго и третьего аргумента соответственно. Функция обратного вызова далее передает « ошибаться » и « ФД аргументы. Этот метод открывает указанный файл для чтения, а затем выполняет заданную функцию обратного вызова.
  • В определении функции обратного вызова « если В заявлении используется оператор « консоль.ошибка() ” для отображения сообщения об ошибке, возникающего при открытии указанного файла.
  • Если ошибок не возникает, то « еще ” будет выполнен оператор, использующий “ консоль.log ()» для отображения проверочного сообщения и «дескриптора файла», который обозначается « ФД аргумент.

Выход

Теперь выполняет выполнение для содержания « приложение .js» через:

приложение узла. js

Вывод ниже показывает, что файл открыт для чтения, а также возвращает дескриптор файла:

Способ 2: используйте «fs.openSync()» для получения дескриптора файла

« фс.openSync ()» — это предопределенный метод « фс », который синхронно открывает файл для выполнения общих операций: чтения, записи, переименования, обновления и удаления. Наряду со своими базовыми функциями этот метод возвращает « дескриптор файла » напрямую, вместо вызова функции обратного вызова, как в « фс.открыть ()».

Синтаксис

фс. openSync ( путь , флаги , режим )

Параметры, используемые в приведенном выше « фс.openSync() метод объясняется ниже:

  • путь : указывает имя и путь к конкретному файлу в форме строки, URL-адреса или буфера.
  • флаги : обозначает строковое или числовое значение, определяющее операции, которые будут выполняться с открытым файлом. Его значение по умолчанию — «r(read)».
  • режим : Обозначает права доступа к файлу, который « 0o666 (доступен как для чтения, так и для записи) ' по умолчанию.

Возвращаемое значение: « фс.openSync() ” предоставляет целое число в качестве возвращаемого значения, которое обозначает дескриптор файла.

Следуйте нашему подробному руководству по теме « Метод fs.openSync() » для практической реализации.

Способ 3: используйте «fsPromise.open()» для получения дескриптора файла

« fsPromises.open() » — это предопределенный метод « фс ” модуль, который асинхронно открывает файл как обещание и возвращает “ дескриптор файла ». Если обещание разрешено, оно проверяет, открыта ли указанная папка, в противном случае оно отклоняется с объектом ошибки.

Синтаксис

fsPromises. открыть ( имя файла , флаги , режим )

« fsPromises.open ()» работает со следующими тремя параметрами:

  • имя файла : сообщает конкретное имя файла и путь в виде строки, URL-адреса или буфера, которые пользователь хочет прочитать по умолчанию.
  • флаги : это может быть строка или неотрицательное целое значение, определяющее операции, которые необходимо выполнить с открытым файлом. Его значение по умолчанию — «r(read)».
  • режим : он определяет права доступа к файлу: « 0o666 (доступен как для чтения, так и для записи) ' по умолчанию.

Возвращаемое значение: Это дает « обещать ” как возвращаемое значение “ fsPromises.open ()».

Следуйте нашему подробному руководству по теме « Метод fsPromises.open() » для практической реализации.

Какие различные операции можно выполнять с файловыми дескрипторами в Node.js?

После получения дескриптора файла пользователь может использовать его для доступа к этому конкретному файлу и выполнения с ним различных операций, таких как открытие, закрытие, чтение, запись и многое другое. Для выполнения этих конкретных операций следуйте нашему подробному руководству « Модуль файловой системы ».

Вот и все, что касается взаимодействия с файловыми дескрипторами в Node.js.

Заключение

Для взаимодействия с файловыми дескрипторами используйте команду « fs.open()», «fs.openSync() ', или ' fsPromises.open() » в Node.js. Все эти методы открывают файл для выполнения с ним различных операций, указанных в параметре « флаг параметр », а также вернуть параметр « дескриптор файла », который является ссылкой на открытый файл. В этой статье подробно описано, как взаимодействовать с файловыми дескрипторами в Node.js.