Java.io.FileDescriptor en Java

io.FileDescriptor in Java

java.io.FileDescriptor funciona para abrir un archivo con un nombre específico. Si hay algún contenido presente en ese archivo, primero borrará todo ese contenido y pondrá «Comienzo del proceso» como la primera línea. Las instancias de la clase de descriptor de archivo sirven como un identificador opaco para la estructura subyacente específica de la máquina que representa un archivo abierto, un socket abierto u otra fuente o sumidero de bytes. 

  • 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 archivo.

Campos  

  • err: un identificador para el flujo de error estándar.
  • in: un identificador del flujo de entrada estándar.
  • out: un identificador para el flujo de salida estándar.

Declaración :  

public final class FileDescriptor
   extends Object

Constructores :  

  • FileDescriptor() : construye un objeto FileDescriptor

Métodos:  

  • sync() : java.io.File.sync() sincroniza todos los búferes con el dispositivo subyacente. Cuando todos los datos modificados del FileDescriptor se han escrito en el dispositivo subyacente, el método regresa. 
    Sintaxis:
public void sync()
Parameters :
-----------
Return : 
void
Exception : 
-> SyncFailedException : This is exception is thrown if there is no guarantee of    
                         synchronization of buffers with the device. 

Java

// Java program explaining the working of sync() method
 
import java.io.*;
 
public class NewClass
{
    public static void main(String[] args) throws IOException
    {
        // Initializing a FileDescriptor
        FileDescriptor geek_descriptor = null;
        FileOutputStream geek_out = null;
 
        // HERE I'm writing "GEEKS" in my file
        byte[] buffer = {71,69,69,75,83};
 
        try{
            geek_out = new FileOutputStream("FILE.txt");
 
            // This getFD() method is called before closing the output stream
            geek_descriptor = geek_out.getFD();
 
            // writes byte to file output stream
            geek_out.write(buffer);
 
            // USe of sync() : to sync data to the source file
            geek_descriptor.sync();
            System.out.print("\nUse of Sync Successful ");
 
        }
        catch(Exception except)
        {
            // if in case IO error occurs
            except.printStackTrace();
        }
        finally
        {
            // releases system resources
            if(geek_out!=null)
                geek_out.close();
        }
    }
}

Nota: 
no puede ver los cambios realizados por este código en el archivo «ARCHIVO.txt» mencionado en el código, ya que dicho archivo no existe en el IDE en línea. Por lo tanto, debe copiar el código en su compilador SYSTEM y observar el cambio en su archivo 
Cualquiera que sea el contenido presente en el archivo, sincronizará su archivo con el dispositivo y sobrescribirá los datos. Ahora el contenido del archivo «ARCHIVO.txt» será 

GEEKS

Incluso si no existe dicho archivo, creará ese archivo por sí solo, sincronizará el archivo y escribirá el contenido, menciona. 
Producción : 

Use of Sync Successful :) 
  • valid() : java.io.File.valid() comprueba si el objeto FileDescriptor es válido o no. 
    Sintaxis:
public boolean valid()
Parameters :
-----------
Return : 
true : if the FileDescriptor object is valid else, false
Exception : 
-----------

Java

// Java program explaining the working of valid() method
 
import java.io.*;
 
public class NewClass
{
    public static void main(String[] args) throws IOException
    {
        // Initializing a FileDescriptor
        FileDescriptor geek_descriptor = null;
        FileInputStream geek_in = null;
 
        try
        {
            geek_in = new FileInputStream("FILE.txt");
 
            // get file descriptor
            geek_descriptor = geek_in.getFD();
 
            boolean check = false;
 
            // Use of valid() : checking the validity of FileDescriptor
            check = geek_descriptor.valid();
 
            System.out.print("FileDescriptor is valid : "+check);
 
        }
        catch(Exception except)
        {
            // if in case IO error occurs
            except.printStackTrace();
        }
        finally
        {
            // releases system resources
            if(geek_in!=null)
                geek_in.close();
        }
    }
}

Nota: 
no puede ver los cambios realizados por este código en el archivo «ARCHIVO.txt» mencionado en el código, ya que dicho archivo no existe en el IDE en línea. Por lo tanto, debe copiar el código en su compilador SYSTEM y observar el cambio en su archivo. Este método comprobará la validez de nuestro FileDescriptor. 
Ya que. nuestro FileDescriptor en el código era válido, por lo que se devuelve verdadero

Producción : 

FileDescriptor is valid : true

Resumen:

  • java.io.File.sync() : sincroniza todos los búferes con el dispositivo subyacente.
  • java.io.File.valid() comprueba si el objeto FileDescriptor es válido o no.

Este artículo es aportado por Mohit Gupta 🙂 . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *