Classe FileDescriptor Java
La classe java.io.FileDescriptor rappresenta un file aperto o un handle socket nel sistema operativo sottostante. Funziona come un riferimento opaco a un particolare dispositivo di file o socket. Questa classe viene utilizzata principalmente come ponte tra i flussi I/O Java e le risorse del file system nativo.
Dichiarazione di classe
Java public final class FileDescriptor extends Object
- L'uso pratico principale di un descrittore di file è creare un FileInputStream o FileOutputStream per contenerlo.
- Le applicazioni non devono creare i propri descrittori di file.
Oggetti FileDescriptor comuni
- FileDescriptor.in: Rappresenta l'input standard (tastiera)
- FileDescriptor.out: Rappresenta l'output standard (console)
- FileDescriptor.err: Rappresenta l'errore standard (output dell'errore)
Costruttore
- DescrizioneFile(): Crea un descrittore di file non valido che non è connesso ad alcun file o socket.
Metodi
Esistono due metodi principali, come indicato di seguito:
- sincronizzazione vuota(): Forza la sincronizzazione di tutti i buffer di sistema con il dispositivo sottostante garantendo che i dati vengano scritti fisicamente.
- java.io.File.valid(): Controlla se l'oggetto descrittore di file è valido (cioè connesso a un file o socket aperto).
Esempio di metodo
1. Metodo sync()
Sintassi:
sincronizzazione pubblica dei vuoti()
Ritorno : vuoto
Eccezione: SyncFailedException - Questa eccezione viene generata se non vi è alcuna garanzia di sincronizzazione dei buffer con il dispositivo.
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 ()); } }
Produzione
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. Metodo valid()
Sintassi:
booleano pubblico valido()
Ritorno: true se l'oggetto FileDescriptor è valido altrimenti 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 (); } }
Produzione
Data synchronized successfully.
Esempio con descrittori di file 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 (); } }
Produzione:
Crea quizInserisci qualcosa: A
Hai inserito: A