فئة جافا FileDescriptor

تمثل فئة java.io.FileDescriptor ملفًا مفتوحًا أو مقبض مأخذ توصيل في نظام التشغيل الأساسي. إنه بمثابة مرجع غير شفاف لجهاز أو مقبس ملف معين. تُستخدم هذه الفئة بشكل أساسي كجسر بين تدفقات الإدخال/الإخراج في Java وموارد نظام الملفات الأصلية.

إعلان الطبقة

Java
   public     final     class   FileDescriptor     extends     Object   
  • الاستخدام العملي الرئيسي لواصف الملف هو إنشاء FileInputStream أو FileOutputStream لاحتوائه.
  • يجب ألا تقوم التطبيقات بإنشاء واصفات الملفات الخاصة بها.

كائنات FileDescriptor الشائعة

  • FileDescriptor.in: يمثل الإدخال القياسي (لوحة المفاتيح)
  • FileDescriptor.out: يمثل الإخراج القياسي (وحدة التحكم)
  • خطأ الملف: يمثل الخطأ القياسي (خطأ الإخراج)

منشئ

  • واصف الملف (): يقوم بإنشاء واصف ملف غير صالح غير متصل بأي ملف أو مأخذ توصيل.

طُرق

هناك طريقتان رئيسيتان كما هو مذكور أدناه:

  • مزامنة باطلة (): يفرض على جميع المخازن المؤقتة للنظام المزامنة مع الجهاز الأساسي لضمان كتابة البيانات فعليًا.
  • java.io.File.valid (): يتحقق مما إذا كان كائن واصف الملف صالحًا (أي متصل بملف مفتوح أو مقبس).

مثال الطريقة

1. طريقة المزامنة ().

بناء الجملة:

مزامنة الفراغ العام ()

يعود : فارغ

الاستثناء: 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. طريقة صالحة ().

بناء الجملة:

منطقية عامة صالحة ()

يعود: صحيح إذا كان كائن FileDescriptor صالحًا وإلا فسيكون خطأ

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

الإخراج:

أدخل شيئًا: أ

دخلت: أ

إنشاء اختبار