Classe FileDescriptor Java

La classe java.io.FileDescriptor rappresenta un file aperto o un handle socket nel sistema operativo sottostante. Funziona come un riferimento opaco a un particolare dispositivo di file o socket. Questa classe viene utilizzata principalmente come ponte tra i flussi I/O Java e le risorse del file system nativo.

Dichiarazione di classe

Java
   public     final     class   FileDescriptor     extends     Object   
  • L'uso pratico principale di un descrittore di file è creare un FileInputStream o FileOutputStream per contenerlo.
  • Le applicazioni non devono creare i propri descrittori di file.

Oggetti FileDescriptor comuni

  • FileDescriptor.in: Rappresenta l'input standard (tastiera)
  • FileDescriptor.out: Rappresenta l'output standard (console)
  • FileDescriptor.err: Rappresenta l'errore standard (output dell'errore)

Costruttore

  • DescrizioneFile(): Crea un descrittore di file non valido che non è connesso ad alcun file o socket.

Metodi

Esistono due metodi principali, come indicato di seguito:

  • sincronizzazione vuota(): Forza la sincronizzazione di tutti i buffer di sistema con il dispositivo sottostante garantendo che i dati vengano scritti fisicamente.
  • java.io.File.valid(): Controlla se l'oggetto descrittore di file è valido (cioè connesso a un file o socket aperto).

Esempio di metodo

1. Metodo sync()

Sintassi:

sincronizzazione pubblica dei vuoti()

Ritorno : vuoto

Eccezione: SyncFailedException - Questa eccezione viene generata se non vi è alcuna garanzia di sincronizzazione dei buffer con il dispositivo.

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

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

2. Metodo valid()

Sintassi:

booleano pubblico valido()

Ritorno: true se l'oggetto FileDescriptor è valido altrimenti 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  ();      }   }   

Produzione
Data synchronized successfully.  

Esempio con descrittori di file standard

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

Produzione:

Inserisci qualcosa: A

Hai inserito: A

Crea quiz