Java FileDescriptor Class

המחלקה java.io.FileDescriptor מייצגת קובץ פתוח או ידית שקע במערכת ההפעלה הבסיסית. It acts as an opaque reference to a particular file device or socket. מחלקה זו משמשת בעיקר כגשר בין זרמי Java I/O לבין משאבי מערכת הקבצים המקוריים.

הצהרת כיתה

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

תַחבִּיר:

סנכרון void public()

החזרה: בָּטֵל

חריג: 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()

תַחבִּיר:

תקף בוליאני ציבורי()

לַחֲזוֹר: true אם האובייקט FileDescriptor חוקי אחרת 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.  

דוגמה עם FileDescriptors סטנדרטיים

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

תְפוּקָה:

הזן משהו: א

נכנסת: א

צור חידון