Java FileDescriptor-klasse

De klasse java.io.FileDescriptor vertegenwoordigt een open bestand of socket-handle in het onderliggende besturingssysteem. Het fungeert als een ondoorzichtige verwijzing naar een bepaald bestandsapparaat of socket. Deze klasse wordt voornamelijk gebruikt als brug tussen Java I/O-streams en de systeemeigen bestandssysteembronnen.

Java
   public     final     class   FileDescriptor     extends     Object   
  • Het belangrijkste praktische gebruik van een bestandsdescriptor is het maken van een FileInputStream of FileOutputStream om deze te bevatten.
  • Toepassingen mogen geen eigen bestandsdescriptors maken.

Algemene FileDescriptor-objecten

  • FileDescriptor.in: Vertegenwoordigt de standaardinvoer (toetsenbord)
  • FileDescriptor.out: Vertegenwoordigt de standaarduitvoer (console)
  • FileDescriptor.err: Vertegenwoordigt de standaardfout (foutuitvoer)

Constructeur

  • Bestandsbeschrijving(): Creëert een ongeldige bestandsdescriptor die niet is verbonden met een bestand of socket.

Methoden

Er zijn twee hoofdmethoden, zoals hieronder vermeld:

  • ongeldige synchronisatie(): Dwingt alle systeembuffers om te synchroniseren met het onderliggende apparaat, zodat gegevens fysiek worden geschreven.
  • java.io.File.valid(): Controleert of het bestandsdescriptorobject geldig is (dat wil zeggen verbonden met een geopend bestand of socket).

Methode Voorbeeld

1. sync() Methode

Syntaxis:

openbare ongeldige synchronisatie()

Opbrengst : leegte

Uitzondering: SyncFailedException - Dit is een uitzondering als er geen garantie is voor synchronisatie van buffers met het apparaat.

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

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

2. valid() Methode

Syntaxis:

publieke boolean geldig()

Opbrengst: true als het FileDescriptor-object geldig is, anders 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  ();      }   }   

Uitvoer
Data synchronized successfully.  

Voorbeeld met standaard FileDescriptors

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

Uitgang:

Vul iets in: A

Je hebt ingevoerd: A

Quiz maken