Clasa Java FileDescriptor
Clasa java.io.FileDescriptor reprezintă un fișier deschis sau un mâner de socket în sistemul de operare de bază. Acționează ca o referință opacă la un anumit dispozitiv de fișier sau soclu. Această clasă este folosită în principal ca o punte între fluxurile I/O Java și resursele sistemului de fișiere nativ.
Declarație de clasă
Java public final class FileDescriptor extends Object
- Principala utilizare practică a unui descriptor de fișier este de a crea un FileInputStream sau FileOutputStream pentru a-l conține.
- Aplicațiile nu ar trebui să-și creeze propriile descriptori de fișiere.
Obiecte comune FileDescriptor
- FileDescriptor.in: Reprezintă intrarea standard (tastatură)
- FileDescriptor.out: Reprezintă ieșirea standard (consola)
- FileDescriptor.err: Reprezintă eroarea standard (ieșire de eroare)
Constructor
- FileDescriptor(): Creează un descriptor de fișier nevalid care nu este conectat la niciun fișier sau soclu.
Metode
Există două metode principale, după cum este menționat mai jos:
- void sync(): Forțează toate tampoanele de sistem să se sincronizeze cu dispozitivul de bază, asigurându-se că datele sunt scrise fizic.
- java.io.File.valid(): Verifică dacă obiectul descriptor de fișier este valid (adică conectat la un fișier sau soclu deschis).
Exemplu de metodă
1. metoda sync().
Sintaxă:
sincronizare public void()
Retur: gol
Excepție: SyncFailedException - Această excepție este aruncată dacă nu există nicio garanție a sincronizării bufferelor cu dispozitivul.
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 ()); } }
Ieșire
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. valid() Metoda
Sintaxă:
public boolean valid()
Reveni: true dacă obiectul FileDescriptor este valid, altfel 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 (); } }
Ieșire
Data synchronized successfully.
Exemplu cu FileDescriptors standard
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 (); } }
Ieșire:
Creați un testIntrodu ceva: A
Ai intrat: A