Classe Java FileDescriptor
La classe java.io.FileDescriptor representa un fitxer obert o identificador de sòcol al sistema operatiu subjacent. Actua com una referència opaca a un dispositiu de fitxer o sòcol concret. Aquesta classe s'utilitza principalment com a pont entre els fluxos d'E/S de Java i els recursos del sistema de fitxers natius.
Declaració de classe
Java public final class FileDescriptor extends Object
- L'ús pràctic principal d'un descriptor de fitxers és crear un FileInputStream o FileOutputStream per contenir-lo.
- Les aplicacions no haurien de crear els seus propis descriptors de fitxer.
Objectes descriptor de fitxers comuns
- FileDescriptor.in: Representa l'entrada estàndard (teclat)
- FileDescriptor.out: Representa la sortida estàndard (consola)
- FileDescriptor.err: Representa l'error estàndard (sortida d'error)
Constructor
- FileDescriptor(): Crea un descriptor de fitxer no vàlid que no està connectat a cap fitxer o sòcol.
Mètodes
Hi ha dos mètodes principals, com s'esmenta a continuació:
- void sync(): Força tots els buffers del sistema a sincronitzar-se amb el dispositiu subjacent, assegurant-se que les dades s'escriuen físicament.
- java.io.File.valid(): Comprova si l'objecte descriptor de fitxer és vàlid (és a dir, connectat a un fitxer o sòcol obert).
Mètode Exemple
1. Mètode sync().
Sintaxi:
sincronització de public void()
Tornada: buit
Excepció: SyncFailedException - Aquesta és una excepció que es llança si no hi ha cap garantia de sincronització dels buffers amb el dispositiu.
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 ()); } }
Sortida
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. Mètode vàlid().
Sintaxi:
booleà públic vàlid()
Tornada: true si l'objecte FileDescriptor és vàlid, sinó fals
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 (); } }
Sortida
Data synchronized successfully.
Exemple amb FileDescriptors estàndard
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 (); } }
Sortida:
Crea un qüestionariIntroduïu alguna cosa: A
Heu introduït: A