Trieda Java FileDescriptor

Trieda java.io.FileDescriptor predstavuje otvorený súbor alebo rukoväť soketu v základnom operačnom systéme. Funguje ako nepriehľadný odkaz na konkrétne súborové zariadenie alebo soket. Táto trieda sa používa hlavne ako most medzi vstupno-výstupnými tokmi Java a prostriedkami natívneho systému súborov.

Vyhlásenie o triede

Java
   public     final     class   FileDescriptor     extends     Object   
  • Hlavným praktickým využitím deskriptora súboru je vytvorenie súboru FileInputStream alebo FileOutputStream, ktorý ho obsahuje.
  • Aplikácie by si nemali vytvárať vlastné deskriptory súborov.

Bežné objekty FileDescriptor Objects

  • FileDescriptor.in: Predstavuje štandardný vstup (klávesnica)
  • FileDescriptor.out: Predstavuje štandardný výstup (konzola)
  • FileDescriptor.err: Predstavuje štandardnú chybu (chybový výstup)

Konštruktér

  • FileDescriptor(): Vytvorí neplatný deskriptor súboru, ktorý nie je pripojený k žiadnemu súboru alebo soketu.

Metódy

Existujú dva hlavné spôsoby, ako je uvedené nižšie:

  • void sync(): Vynúti synchronizáciu všetkých vyrovnávacích pamätí systému so základným zariadením, čím sa zabezpečí fyzický zápis údajov.
  • java.io.File.valid(): Skontroluje, či je objekt deskriptora súboru platný (t. j. pripojený k otvorenému súboru alebo soketu).

Príklad metódy

1. Metóda sync().

Syntax:

public void sync()

Návrat : neplatné

Výnimka: SyncFailedException - Táto výnimka sa vyvolá, ak neexistuje záruka synchronizácie vyrovnávacích pamätí so zariadením.

Java
   import     java.io.*  ;   public     class   FileDescriptorValidity     {      public     static     void     main  (  String  []     args  )     throws     Exception     {      FileOutputStream     fos     =     new     FileOutputStream  (  'example.txt'  );      FileDescriptor     fd     =     fos  .  getFD  ();      System  .  out  .  println  (  'Is FileDescriptor valid? '     +     fd  .  valid  ());      fos  .  close  ();      System  .  out  .  println  (  'Is FileDescriptor valid after close? '     +     fd  .  valid  ());      }   }   

Výstup
Is FileDescriptor valid? true Is FileDescriptor valid after close? false  

2. valid() Metóda

Syntax:

public boolean valid()

Návrat: true, ak je objekt FileDescriptor platný, inak je false

Java
   import     java.io.*  ;   public     class   FileDescriptorSync     {      public     static     void     main  (  String  []     args  )     throws     Exception     {      FileOutputStream     fos     =     new     FileOutputStream  (  'syncDemo.txt'  );      FileDescriptor     fd     =     fos  .  getFD  ();      fos  .  write  (  'GeeksForGeeks FileDescriptor Example'  .  getBytes  ());      fd  .  sync  ();     // Ensures data is written to disk      System  .  out  .  println  (  'Data synchronized successfully.'  );      fos  .  close  ();      }   }   

Výstup
Data synchronized successfully.  

Príklad so štandardnými popisovačmi súborov

Java
   import     java.io.*  ;   public     class   StandardFileDescriptors     {      public     static     void     main  (  String  []     args  )     throws     Exception     {      FileInputStream     fis     =     new     FileInputStream  (  FileDescriptor  .  in  );      FileOutputStream     fos     =     new     FileOutputStream  (  FileDescriptor  .  out  );      FileOutputStream     fes     =     new     FileOutputStream  (  FileDescriptor  .  err  );      fos  .  write  (  'Enter something: '  .  getBytes  ());      int     data     =     fis  .  read  ();      fes  .  write  ((  'You entered: '     +     (  char  )  data     +     'n'  ).  getBytes  ());      fis  .  close  ();      fos  .  close  ();      fes  .  close  ();      }   }   

výstup:

Zadajte niečo: A

Zadali ste: A

Vytvoriť kvíz