Classe Java FileDescriptor

La classe java.io.FileDescriptor representa un fitxer obert o identificador de sòcol al sistema operatiu subjacent. Actua com una referència opaca a un dispositiu de fitxer o sòcol concret. Aquesta classe s'utilitza principalment com a pont entre els fluxos d'E/S de Java i els recursos del sistema de fitxers natius.

Declaració de classe

Java
   public     final     class   FileDescriptor     extends     Object   
  • L'ús pràctic principal d'un descriptor de fitxers és crear un FileInputStream o FileOutputStream per contenir-lo.
  • Les aplicacions no haurien de crear els seus propis descriptors de fitxer.

Objectes descriptor de fitxers comuns

  • FileDescriptor.in: Representa l'entrada estàndard (teclat)
  • FileDescriptor.out: Representa la sortida estàndard (consola)
  • FileDescriptor.err: Representa l'error estàndard (sortida d'error)

Constructor

  • FileDescriptor(): Crea un descriptor de fitxer no vàlid que no està connectat a cap fitxer o sòcol.

Mètodes

Hi ha dos mètodes principals, com s'esmenta a continuació:

  • void sync(): Força tots els buffers del sistema a sincronitzar-se amb el dispositiu subjacent, assegurant-se que les dades s'escriuen físicament.
  • java.io.File.valid(): Comprova si l'objecte descriptor de fitxer és vàlid (és a dir, connectat a un fitxer o sòcol obert).

Mètode Exemple

1. Mètode sync().

Sintaxi:

sincronització de public void()

Tornada: buit

Excepció: SyncFailedException - Aquesta és una excepció que es llança si no hi ha cap garantia de sincronització dels buffers amb el dispositiu.

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  ());      }   }   

Sortida
Is FileDescriptor valid? true Is FileDescriptor valid after close? false  

2. Mètode vàlid().

Sintaxi:

booleà públic vàlid()

Tornada: true si l'objecte FileDescriptor és vàlid, sinó fals

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  ();      }   }   

Sortida
Data synchronized successfully.  

Exemple amb FileDescriptors estàndard

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  ();      }   }   

Sortida:

Introduïu alguna cosa: A

Heu introduït: A

Crea un qüestionari