Clase Java FileDescriptor
La clase java.io.FileDescriptor representa un archivo abierto o un identificador de socket en el sistema operativo subyacente. Actúa como una referencia opaca a un dispositivo de archivo o socket en particular. Esta clase se utiliza principalmente como puente entre los flujos de E/S de Java y los recursos del sistema de archivos nativo.
Declaración de clase
Java public final class FileDescriptor extends Object
- El principal uso práctico de un descriptor de archivo es crear un FileInputStream o FileOutputStream para contenerlo.
- Las aplicaciones no deben crear sus propios descriptores de archivos.
Objetos FileDescriptor comunes
- FileDescriptor.en: Representa la entrada estándar (teclado)
- FileDescriptor.out: Representa la salida estándar (consola)
- ArchivoDescriptor.err: Representa el error estándar (salida de error)
Constructor
- Descriptor de archivo(): Crea un descriptor de archivo no válido que no está conectado a ningún archivo o socket.
Métodos
Hay dos métodos principales como se menciona a continuación:
- sincronización nula(): Obliga a todos los buffers del sistema a sincronizarse con el dispositivo subyacente, asegurando que los datos se escriban físicamente.
- java.io.File.valid(): Comprueba si el objeto descriptor de archivo es válido (es decir, está conectado a un archivo o socket abierto).
Ejemplo de método
1. Método de sincronización ()
Sintaxis:
sincronización pública vacía()
Devolver : vacío
Excepción: SyncFailedException - Esta excepción se produce si no hay garantía de sincronización de los buffers con el 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 ()); } }
Producción
Is FileDescriptor valid? true Is FileDescriptor valid after close? false
2. Método válido ()
Sintaxis:
booleano público válido()
Devolver: verdadero si el objeto FileDescriptor es válido; de lo contrario, falso
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 (); } }
Producción
Data synchronized successfully.
Ejemplo con FileDescriptors estándar
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 (); } }
Producción:
Crear cuestionarioIntroduzca algo: A
Entraste: A