Clasa Java FileDescriptor

Clasa java.io.FileDescriptor reprezintă un fișier deschis sau un mâner de socket în sistemul de operare de bază. Acționează ca o referință opacă la un anumit dispozitiv de fișier sau soclu. Această clasă este folosită în principal ca o punte între fluxurile I/O Java și resursele sistemului de fișiere nativ.

Declarație de clasă

Java
   public     final     class   FileDescriptor     extends     Object   
  • Principala utilizare practică a unui descriptor de fișier este de a crea un FileInputStream sau FileOutputStream pentru a-l conține.
  • Aplicațiile nu ar trebui să-și creeze propriile descriptori de fișiere.

Obiecte comune FileDescriptor

  • FileDescriptor.in: Reprezintă intrarea standard (tastatură)
  • FileDescriptor.out: Reprezintă ieșirea standard (consola)
  • FileDescriptor.err: Reprezintă eroarea standard (ieșire de eroare)

Constructor

  • FileDescriptor(): Creează un descriptor de fișier nevalid care nu este conectat la niciun fișier sau soclu.

Metode

Există două metode principale, după cum este menționat mai jos:

  • void sync(): Forțează toate tampoanele de sistem să se sincronizeze cu dispozitivul de bază, asigurându-se că datele sunt scrise fizic.
  • java.io.File.valid(): Verifică dacă obiectul descriptor de fișier este valid (adică conectat la un fișier sau soclu deschis).

Exemplu de metodă

1. metoda sync().

Sintaxă:

sincronizare public void()

Retur: gol

Excepție: SyncFailedException - Această excepție este aruncată dacă nu există nicio garanție a sincronizării bufferelor cu dispozitivul.

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

Ieșire
Is FileDescriptor valid? true Is FileDescriptor valid after close? false  

2. valid() Metoda

Sintaxă:

public boolean valid()

Reveni: true dacă obiectul FileDescriptor este valid, altfel 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  ();      }   }   

Ieșire
Data synchronized successfully.  

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

Ieșire:

Introdu ceva: A

Ai intrat: A

Creați un test