Java FileDescriptor klasse

java.io.FileDescriptor-klassen repræsenterer et åbent fil- eller socket-håndtag i det underliggende operativsystem. Det fungerer som en uigennemsigtig reference til en bestemt filenhed eller socket. Denne klasse bruges hovedsageligt som en bro mellem Java I/O-streams og de native filsystemressourcer.

Klasseerklæring

Java
   public     final     class   FileDescriptor     extends     Object   
  • Den vigtigste praktiske anvendelse af en filbeskrivelse er at oprette en FileInputStream eller FileOutputStream til at indeholde den.
  • Programmer bør ikke oprette deres egne filbeskrivelser.

Almindelige FileDescriptor-objekter

  • FileDescriptor.in: Repræsenterer standardinput (tastatur)
  • FileDescriptor.out: Repræsenterer standardoutput (konsol)
  • FileDescriptor.err: Repræsenterer standardfejlen (fejloutput)

Konstruktør

  • FileDescriptor(): Opretter en ugyldig filbeskrivelse, der ikke er forbundet til nogen fil eller socket.

Metoder

Der er to hovedmetoder som nævnt nedenfor:

  • ugyldig synkronisering(): Tvinger alle systembuffere til at synkronisere med den underliggende enhed, hvilket sikrer, at data er fysisk skrevet.
  • java.io.File.valid(): Kontrollerer, om filbeskrivelsesobjektet er gyldigt (dvs. forbundet til en åben fil eller socket).

Metodeeksempel

1. sync() metode

Syntaks:

public void sync()

Retur: ugyldig

Undtagelse: SyncFailedException - Dette er en undtagelse, hvis der ikke er nogen garanti for synkronisering af buffere med enheden.

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

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

2. valid() Metode

Syntaks:

offentlig boolesk gyldig()

Retur: true, hvis FileDescriptor-objektet er gyldigt ellers falsk

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

Produktion
Data synchronized successfully.  

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

Produktion:

Indtast noget: A

Du indtastede: A

Opret Quiz