Java FileDescriptor klasė

Klasė java.io.FileDescriptor reiškia atvirą failo arba lizdo rankenėlę pagrindinėje operacinėje sistemoje. Tai veikia kaip nepermatoma nuoroda į tam tikrą failo įrenginį arba lizdą. Ši klasė daugiausia naudojama kaip tiltas tarp Java I/O srautų ir vietinių failų sistemos išteklių.

Klasės deklaracija

Java
   public     final     class   FileDescriptor     extends     Object   
  • Pagrindinis praktinis failo deskriptoriaus panaudojimas yra sukurti FileInputStream arba FileOutputStream, kuriame jis būtų.
  • Programos neturėtų kurti savo failų deskriptorių.

Įprasti FileDescriptor objektai

  • FileDescriptor.in: Nurodo standartinę įvestį (klaviatūrą)
  • FileDescriptor.out: Nurodo standartinę išvestį (konsolę)
  • FileDescriptor.err: Nurodo standartinę klaidą (klaidos išvestis)

Konstruktorius

  • FileDescriptor(): Sukuria netinkamą failo aprašą, kuris nėra prijungtas prie jokio failo ar lizdo.

Metodai

Yra du pagrindiniai metodai, kaip nurodyta toliau:

  • void sync (): Priverčia visus sistemos buferius sinchronizuoti su pagrindiniu įrenginiu, užtikrinant, kad duomenys būtų įrašyti fiziškai.
  • java.io.File.valid(): Patikrina, ar failo deskriptoriaus objektas yra tinkamas (t. y. prijungtas prie atidaryto failo arba lizdo).

Metodo pavyzdys

1. sync() metodas

Sintaksė:

viešasis galis sinchronizavimas ()

Grąžinti: tuščias

Išimtis: SyncFailedException – Tai yra išimtis, jei nėra garantijos, kad buferiai bus sinchronizuojami su įrenginiu.

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

Išvestis
Is FileDescriptor valid? true Is FileDescriptor valid after close? false  

2. valid() Metodas

Sintaksė:

vieša loginė vertė ()

Grąžinti: tiesa, jei FileDescriptor objektas yra galiojantis, kitaip klaidingas

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

Išvestis
Data synchronized successfully.  

Pavyzdys su standartiniais failų deskriptoriais

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

Išvestis:

Įveskite ką nors: A

Įvedėte: A

Sukurti viktoriną