Java FileDescriptor-Klasse

Die Klasse java.io.FileDescriptor stellt eine offene Datei oder ein Socket-Handle im zugrunde liegenden Betriebssystem dar. Es fungiert als undurchsichtiger Verweis auf ein bestimmtes Dateigerät oder einen bestimmten Socket. Diese Klasse wird hauptsächlich als Brücke zwischen Java-I/O-Streams und den nativen Dateisystemressourcen verwendet.

Klassenerklärung

Java
   public     final     class   FileDescriptor     extends     Object   
  • Der praktische Hauptnutzen eines Dateideskriptors besteht darin, einen FileInputStream oder FileOutputStream zu erstellen, der ihn enthält.
  • Anwendungen sollten keine eigenen Dateideskriptoren erstellen.

Allgemeine FileDescriptor-Objekte

  • FileDescriptor.in: Stellt die Standardeingabe (Tastatur) dar.
  • FileDescriptor.out: Stellt die Standardausgabe (Konsole) dar.
  • FileDescriptor.err: Stellt den Standardfehler dar (Fehlerausgabe)

Konstrukteur

  • FileDescriptor(): Erstellt einen ungültigen Dateideskriptor, der mit keiner Datei oder keinem Socket verbunden ist.

Methoden

Es gibt zwei Hauptmethoden, wie unten erwähnt:

  • void sync(): Erzwingt die Synchronisierung aller Systempuffer mit dem zugrunde liegenden Gerät, um sicherzustellen, dass Daten physisch geschrieben werden.
  • java.io.File.valid(): Überprüft, ob das Dateideskriptorobjekt gültig ist (d. h. mit einer geöffneten Datei oder einem Socket verbunden ist).

Methodenbeispiel

1. sync()-Methode

Syntax:

public void sync()

Zurückkehren : Leere

Ausnahme: SyncFailedException - Diese Ausnahme wird ausgelöst, wenn keine Garantie für die Synchronisierung der Puffer mit dem Gerät besteht.

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

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

2. valid()-Methode

Syntax:

öffentlicher boolescher Wert valid()

Zurückkehren: true, wenn das FileDescriptor-Objekt gültig ist, andernfalls 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  ();      }   }   

Ausgabe
Data synchronized successfully.  

Beispiel mit Standard-FileDeskriptoren

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

Ausgabe:

Geben Sie etwas ein: A

Sie haben eingegeben: A

Quiz erstellen