Клас Java FileDescriptor

Клас java.io.FileDescriptor представляє відкритий файл або дескриптор сокета в базовій операційній системі. Він діє як непрозоре посилання на певний файловий пристрій або сокет. Цей клас в основному використовується як міст між потоками вводу-виводу Java та ресурсами рідної файлової системи.

Оголошення класу

Java
   public     final     class   FileDescriptor     extends     Object   
  • Основним практичним використанням файлового дескриптора є створення FileInputStream або FileOutputStream для його вмісту.
  • Програми не повинні створювати власні дескриптори файлів.

Загальні об’єкти FileDescriptor

  • FileDescriptor.in: Представляє стандартний ввід (клавіатура)
  • FileDescriptor.out: Представляє стандартний вихід (консоль)
  • FileDescriptor.err: Представляє стандартну помилку (вихід помилки)

Конструктор

  • FileDescriptor(): Створює недійсний дескриптор файлу, який не підключено до жодного файлу чи сокета.

методи

Нижче наведено два основних методи:

  • void sync(): Примушує всі системні буфери синхронізуватися з основним пристроєм, забезпечуючи фізичний запис даних.
  • java.io.File.valid(): Перевіряє, чи об’єкт файлового дескриптора дійсний (тобто підключений до відкритого файлу або сокета).

Приклад методу

1. Метод sync().

Синтаксис:

public void sync()

Повернення: недійсний

Виняток: SyncFailedException - Цей виняток виникає, якщо немає гарантії синхронізації буферів із пристроєм.

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

Вихід
Is FileDescriptor valid? true Is FileDescriptor valid after close? false  

2. Метод valid().

Синтаксис:

public boolean valid()

Повернення: true, якщо об'єкт FileDescriptor дійсний, 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  ();      }   }   

Вихід
Data synchronized successfully.  

Приклад зі стандартними файловими дескрипторами

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

Вихід:

Введіть щось: А

Ви ввели: А

Створіть вікторину