فئة جافا 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 (); } }
الإخراج:
إنشاء اختبارأدخل شيئًا: أ
دخلت: أ