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:

Introduzca algo: A

Entraste: A

Crear cuestionario