W Node.js „ deskryptor pliku ” jest po prostu nieujemną liczbą całkowitą w tabeli deskryptorów plików. Tabela deskryptorów plików jest tablicą wewnątrz „ PCB (blok kontroli procesu) ”, który przechowuje zapisy wszystkich procesów systemu operacyjnego. Działa jako odniesienie do otwartego pliku, które służy do łatwej identyfikacji otwartego pliku lub łatwego dostępu do niego w systemie operacyjnym. Po uzyskaniu dostępu do otwartego pliku poprzez „ deskryptor pliku ”, wówczas użytkownik może wykonać na nim żądaną operację zgodnie z wymaganiami.
Ten artykuł pokaże, jak użytkownik może wchodzić w interakcję z deskryptorami plików w Node.js.
Jak wchodzić w interakcję z deskryptorami plików w Node.js?
Użytkownik może wchodzić w interakcję z deskryptorami plików w celu ich odzyskania za pomocą opisanych poniżej, predefiniowanych metod „ fs moduł:
- Użyj „fs.open()”, aby uzyskać deskryptor pliku
- Użyj „fs.openSync()”, aby uzyskać deskryptor pliku
- Użyj „fsPromise.open()”, aby uzyskać deskryptor pliku
Omówmy te metody jeden po drugim.
Metoda 1: Użyj „fs.open()”, aby uzyskać deskryptor pliku
„ fs.otwarte ()” jest najczęściej stosowaną metodą „ fs ”, który asynchronicznie otwiera plik w celu wykonania kilku operacji, takich jak odczytywanie, zapisywanie, zmiana nazwy, aktualizacja i usuwanie. Co więcej, zwraca również „ deskryptor pliku ” po wykonaniu zdefiniowanej operacji na otwartym pliku poprzez funkcję wywołania zwrotnego.
Składnia
Podstawowa składnia „ fs.otwarte ()” zapisano poniżej:
fs. otwarty ( Nazwa pliku , flagi , tryb , oddzwonić )Zgodnie z podaną powyżej składnią, „ fs.otwarte ()” obsługuje następujące parametry:
- Nazwa pliku : Określa nazwę oraz ścieżkę konkretnego pliku, który użytkownik chce otworzyć.
- flagi : Oznacza operacje, które zostaną wykonane na otwartym pliku. Domyślną wartością jest „r(read)”.
- tryb : Wskazuje uprawnienia pliku, który jest „ 0o666 (zarówno do odczytu, jak i do zapisu) ' domyślnie.
- oddzwonić : Wykonuje się po zakończeniu „ fs.otwarte ()' metoda. Wspiera „ błądzić ” parametr, który zgłasza błąd, jeśli wystąpi podczas wykonywania metody i 'dane' parametr, który zwraca „ fd(deskryptor pliku) ”, aby uzyskać dostęp do otwartego pliku.
Wartość zwracana: „ fs.open() ” podaje deskryptor pliku jako zwracaną wartość.
Różne dostępne flagi używane wraz z deskryptorami plików w Node.js
Wszystkie typy flag, które „ fs.open() ” metody umożliwiające wykonanie żądanych operacji na otwartym pliku są wymienione poniżej:
Flagi | Opis |
---|---|
w | Służy do zapisania treści w otwartym pliku, bez jej prezentacji zostanie utworzony nowy plik. |
w+ | Służy do otwierania pliku w celu wykonania na nim operacji odczytu i zapisu. |
wx | Działa tak samo jak „ w ”. Jednakże nie tworzy określonego pliku, jeśli nie istnieje on w systemie plików. |
wx+ | To jest to samo, co „ w+ ”, jednak operacja kończy się niepowodzeniem, jeśli plik nie istnieje. |
R | Otwiera plik, aby go przeczytać, a także tworzy nowy plik, jeśli go nie ma. |
r+ | Otwiera plik w trybie do odczytu i zapisu. |
rs+ | Synchronicznie otwiera plik, aby wykonać zadania czytania i pisania na nim. |
A | Otwiera plik w celu dołączenia jego zawartości. |
+ | Otwiera plik w celu odczytania i dołączenia jego zawartości. |
topór | To jest to samo, co „ A ”, ale nie tworzy nowego pliku, jeśli nie jest on najnowszy w systemie plików. |
topór+ | Działa tak samo jak „ + ”, jednak nie tworzy nowego pliku. |
Po zapoznaniu się z podstawami „ fs.otwarte ()” przejdźmy do jej praktycznej implementacji, aby uzyskać deskryptor pliku.
Przykład: zastosowanie metody „fs.open()” w celu uzyskania deskryptora pliku z domyślną flagą
Ten przykład pokazuje, że stosuje się „fs.open()” metoda otwarcia określonego pliku w celu odczytania i zwrócenia deskryptora pliku:
konst fs = wymagać ( „fs” ) ;był rez = fs. otwarty ( „plik.txt” , 'R' , funkcjonować ( błądzić , fd ) {
Jeśli ( błądzić ) {
konsola. błąd ( błądzić ) ;
} w przeciwnym razie {
konsola. dziennik ( „Plik został otwarty!” ) ;
konsola. dziennik ( fd ) ; }
} ) ;
Wyjaśnienie powyższego bloku kodu jest następujące:
- Po pierwsze, „ wymagać ()” importuje „ fs (system plików) moduł.
- Następnie „ fs.otwarte ()” określa żądaną nazwę folderu, domyślna flaga „ R ”, oraz funkcję wywołania zwrotnego odpowiednio jako pierwszy, drugi i trzeci argument. Funkcja wywołania zwrotnego przekazuje dalej „ błądzić ” i „ fd ' argumenty. Metoda ta otwiera podany plik do odczytu, a następnie wykonuje podaną funkcję wywołania zwrotnego.
- W definicji funkcji wywołania zwrotnego „ Jeśli ” używa wyrażenia „ konsola.błąd() ”, aby wyświetlić komunikat o błędzie występujący podczas otwierania określonego pliku.
- Jeżeli nie wystąpi żaden błąd, wówczas zostanie wyświetlony komunikat „ w przeciwnym razie ” zostanie wykonana instrukcja wykorzystująca „ konsola.log ()”, aby wyświetlić komunikat weryfikacyjny i „deskryptor pliku”, który jest oznaczony przez „ fd ' argument.
Wyjście
Teraz wykonuje wykonanie zawierające „ aplikacja .js” poprzez:
aplikacja węzła. jsPoniższe dane wyjściowe pokazują, że plik jest otwarty do odczytu, a także zwraca deskryptor pliku:
Metoda 2: Użyj „fs.openSync()”, aby uzyskać deskryptor pliku
„ fs.openSync ()” jest predefiniowaną metodą „ fs ”, który synchronicznie otwiera plik w celu wykonania typowych operacji: odczytu, zapisu, zmiany nazwy, aktualizacji i usunięcia. Oprócz podstawowej funkcjonalności metoda ta zwraca „ deskryptor pliku ” bezpośrednio, zamiast wywoływać funkcję wywołania zwrotnego, jak w „ fs.otwarte ()' metoda.
Składnia
fs. openSync ( ścieżka , flagi , tryb )Parametry użyte w powyższym „ fs.openSync() ” wyjaśniono poniżej:
- ścieżka : Określa nazwę i ścieżkę konkretnego pliku w postaci ciągu znaków, adresu URL lub bufora.
- flagi : Oznacza ciąg znaków lub wartość liczbową określającą operacje, które zostaną wykonane na otwartym pliku. Domyślną wartością jest „r(read)”.
- tryb : Oznacza uprawnienia pliku, który jest „ 0o666 (zarówno do odczytu, jak i do zapisu) ' domyślnie.
Wartość zwracana: „ fs.openSync() ” udostępnia liczbę całkowitą jako zwracaną wartość, która oznacza deskryptor pliku.
Postępuj zgodnie z naszym szczegółowym przewodnikiem na stronie „ Metoda fs.openSync(). ” do praktycznego wdrożenia.
Metoda 3: Użyj „fsPromise.open()”, aby uzyskać deskryptor pliku
„ fsPromises.open() ” jest wstępnie zdefiniowaną metodą „ fs ”, który asynchronicznie otwiera plik jako obietnicę i zwraca „ deskryptor pliku ”. Jeśli obietnica zostanie rozwiązana, sprawdza, czy określony folder jest otwarty, w przeciwnym razie zostanie odrzucona z obiektem błędu.
Składnia
fsObiecuje. otwarty ( Nazwa pliku , flagi , tryb )„ fsPromises.open ()” działa na trzech następujących parametrach:
- Nazwa pliku : Podaje konkretną nazwę pliku i ścieżkę w postaci ciągu znaków, adresu URL lub bufora, który użytkownik chce domyślnie przeczytać.
- flagi : Może to być ciąg znaków lub nieujemna wartość całkowita określająca operacje, które należy wykonać na otwartym pliku. Domyślną wartością jest „r(read)”.
- tryb : Określa uprawnienia do plików, czyli „ 0o666 (zarówno do odczytu, jak i do zapisu) ' domyślnie.
Wartość zwracana: Daje „ obietnica ” jako zwróconą wartość „ fsPromises.open ()' metoda.
Postępuj zgodnie z naszym szczegółowym przewodnikiem na stronie „ Metoda fsPromises.open(). ” do praktycznego wdrożenia.
Jakie różne operacje można wykonać na deskryptorach plików w Node.js?
Po pobraniu deskryptora pliku użytkownik może go użyć, aby uzyskać dostęp do konkretnego pliku i wykonać na nim różne operacje, takie jak otwieranie, zamykanie, odczytywanie, zapisywanie i wiele więcej. Aby wykonać te konkretne operacje, postępuj zgodnie z naszym szczegółowym przewodnikiem na temat „ Moduł systemu plików ”.
Chodzi o interakcję z deskryptorami plików w Node.js.
Wniosek
Aby wchodzić w interakcję z deskryptorami plików, użyj przycisku „ fs.open()”, „fs.openSync() ', albo ' fsPromises.open() ” w Node.js. Wszystkie te metody otwierają plik w celu wykonania na nim różnych operacji określonych za pomocą parametru „ flaga ”, a także zwróć parametr „ deskryptor pliku ”, który jest odniesieniem do otwartego pliku. W tym artykule szczegółowo opisano sposób interakcji z deskryptorami plików w Node.js.