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 (); } }
תְפוּקָה:
צור חידוןהזן משהו: א
נכנסת: א