Java FileDescriptor klasa

Klasa java.io.FileDescriptor predstavlja otvorenu datoteku ili ručku utičnice u osnovnom operativnom sustavu. Djeluje kao neprozirna referenca na određeni datotečni uređaj ili utičnicu. Ova se klasa uglavnom koristi kao most između Java I/O tokova i izvornih resursa datotečnog sustava.

Klasna deklaracija

Java
   public     final     class   FileDescriptor     extends     Object   
  • Glavna praktična upotreba deskriptora datoteke je stvaranje FileInputStream ili FileOutputStream koji će ga sadržavati.
  • Aplikacije ne bi trebale stvarati vlastite deskriptore datoteka.

Uobičajeni FileDescriptor objekti

  • FileDescriptor.in: Predstavlja standardni unos (tipkovnica)
  • FileDescriptor.out: Predstavlja standardni izlaz (konzola)
  • FileDescriptor.err: Predstavlja standardnu ​​pogrešku (izlaz pogreške)

Konstruktor

  • FileDescriptor(): Stvara nevažeći deskriptor datoteke koji nije povezan ni s jednom datotekom ili utičnicom.

Metode

Postoje dvije glavne metode kao što je navedeno u nastavku:

  • void sync(): Prisiljava sve međuspremnike sustava na sinkronizaciju s osnovnim uređajem osiguravajući da su podaci fizički zapisani.
  • java.io.File.valid(): Provjerava je li objekt deskriptora datoteke valjan (tj. povezan s otvorenom datotekom ili utičnicom).

Primjer metode

1. metoda sync().

Sintaksa:

javna void sinkronizacija()

Povratak: poništiti

Iznimka: SyncFailedException - Ovo je izuzetak koji se javlja ako ne postoji jamstvo sinkronizacije međuspremnika s uređajem.

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

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

2. valid() metoda

Sintaksa:

javni Booleov valid()

Povratak: true ako je FileDescriptor objekt valjan else 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  ();      }   }   

Izlaz
Data synchronized successfully.  

Primjer sa standardnim deskriptorima datoteka

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

Izlaz:

Unesite nešto: A

Unijeli ste: A

Napravi kviz