Manejo de archivos en Java – Part 2

En Java, con la ayuda de File Class, podemos trabajar con archivos. Esta clase de archivo está dentro del paquete java.io. La clase File se puede usar creando un objeto de la clase y luego especificando el nombre del archivo.

¿Por qué se requiere el manejo de archivos?

  • El manejo de archivos es una parte integral de cualquier lenguaje de programación, ya que el manejo de archivos nos permite almacenar la salida de cualquier programa en particular en un archivo y nos permite realizar ciertas operaciones en él.
  • En palabras simples, el manejo de archivos significa leer y escribir datos en un archivo.

Java

// Importing File Class
import java.io.File;
  
class GFG {
    public static void main(String[] args)
    {
  
        // File name specified
        File obj = new File("myfile.txt");
          System.out.println("File Created!");
    }
}

Producción

File Created!

En Java, el concepto Stream se usa para realizar operaciones de E/S en un archivo. Primero, familiaricémonos con un concepto conocido como Stream en Java.

Flujos en Java

  • En Java, una secuencia de datos se conoce como flujo.
  • Este concepto se utiliza para realizar operaciones de E/S en un archivo.
  • Hay dos tipos de flujos:

1. Corriente de entrada:

La clase Java InputStream es la superclase de todos los flujos de entrada. El flujo de entrada se utiliza para leer datos de numerosos dispositivos de entrada como el teclado, la red, etc. InputStream es una clase abstracta y, por ello, no es útil por sí misma. Sin embargo, sus subclases se utilizan para leer datos.

Hay varias subclases de la clase InputStream, que son las siguientes:

  1. Flujo de entrada de audio
  2. ByteArrayInputStream
  3. FileInputStream
  4. FilterInputStream
  5. StringBufferInputStream
  6. ObjetoEntradaStream

Creación de un flujo de entrada

// Creating an InputStream
InputStream obj = new FileInputStream();

Aquí, se crea un flujo de entrada usando FileInputStream. 

Nota: podemos crear un flujo de entrada a partir de otras subclases, así como InputStream.

Métodos de InputStream

No. S. Método Descripción
1 leer() Lee un byte de datos del flujo de entrada.
2 leer (array de bytes [])() Lee el byte de la secuencia y almacena ese byte en la array especificada.
3 Marcos() Marca la posición en el flujo de entrada hasta que se han leído los datos.
4 disponible() Devuelve el número de bytes disponibles en el flujo de entrada.
5 marcaCompatible() Comprueba si el método mark() y el método reset() son compatibles con la secuencia.
6 Reiniciar() Devuelve el control al punto donde se estableció la marca dentro de la secuencia.
7 salta()  Omite y elimina un número determinado de bytes del flujo de entrada.
8 cerca() Cierra el flujo de entrada.

2. Flujo de salida:

El flujo de salida se usa para escribir datos en numerosos dispositivos de salida como el monitor, el archivo, etc. OutputStream es una superclase abstracta que representa un flujo de salida. OutputStream es una clase abstracta y por eso no es útil por sí misma. Sin embargo, sus subclases se utilizan para escribir datos.

Hay varias subclases de la clase OutputStream que son las siguientes:

  1. ByteArrayOutputStream
  2. FileOutputStream
  3. StringBufferOutputStream
  4. ObjectOutputStreamObjectOutputStream
  5. Flujo de salida de datos
  6. flujo de impresión

Creación de un flujo de salida

// Creating an OutputStream
OutputStream obj = new FileOutputStream();

Aquí, se crea un flujo de salida utilizando FileOutputStream.

Nota: podemos crear un flujo de salida de otras subclases, así como de OutputStream.

Métodos de OutputStream

S. No. Método Descripción
1. escribe() Escribe el byte especificado en el flujo de salida.
2. escribir (array de bytes []) Escribe los bytes que están dentro de una array específica en el flujo de salida.
3. cerca() Cierra el flujo de salida.
4. enjuagar() Obliga a escribir todos los datos presentes en un flujo de salida en el destino.

Según el tipo de datos, hay dos tipos de flujos:

1. Flujo de bytes:

Esta secuencia se utiliza para leer o escribir datos de bytes. El flujo de bytes se subdivide nuevamente en dos tipos que son los siguientes:

  • Flujo de entrada de bytes: se utiliza para leer datos de bytes de diferentes dispositivos.
  • Flujo de salida de bytes: se utiliza para escribir datos de bytes en diferentes dispositivos.

2. Flujo de personajes:

Este flujo se utiliza para leer o escribir datos de caracteres. El flujo de caracteres se subdivide nuevamente en 2 tipos que son los siguientes:

  • Flujo de entrada de caracteres: se utiliza para leer datos de caracteres de diferentes dispositivos.
  • Flujo de salida de caracteres: se utiliza para escribir datos de caracteres en diferentes dispositivos.

Debido al hecho de que sabe lo que es un flujo, perfeccionemos el manejo de archivos en Java al comprender mejor los diversos métodos que son útiles para realizar operaciones en los archivos, como crear, leer y escribir archivos.

Métodos de clase de archivo Java 

La siguiente tabla muestra varios métodos de clase de archivo:

Nombre del método Descripción Tipo de retorno
puedo leer()  Comprueba si el archivo es legible o no.  booleano
puede escribir() Comprueba si el archivo es escribible o no. booleano
crearNuevoArchivo() Crea un archivo vacío. booleano
Eliminar() Elimina un archivo. booleano
existe() Comprueba si el archivo existe o no. booleano
longitud() Devuelve el tamaño del archivo en bytes. Largo
obtenerNombre()  Devuelve el nombre del archivo. Cuerda
lista() Devuelve una array de los archivos en el directorio. Cuerda[] 
mkdir()  Crea un nuevo directorio. booleano
obtenerRutaAbsoluta() Devuelve la ruta de acceso absoluta del archivo. Cuerda

Familiaricémonos ahora con las diversas operaciones de archivos en Java.

Operaciones de archivos en Java

Las siguientes son las diversas operaciones que se pueden realizar en un archivo en Java:

  • Crear un archivo
  • Leer de un archivo
  • Escribir en un archivo
  • Eliminar un archivo

Ahora estudiemos cada una de las operaciones anteriores en detalle.

1. Crear un archivo

  • Para crear un archivo en Java, puede usar el método createNewFile().
  • Si el archivo se crea correctamente, devolverá un valor booleano verdadero y falso si el archivo ya existe.

A continuación se muestra una demostración de cómo crear un archivo en Java:

Java

// Import the File class
import java.io.File;
  
// Import the IOException class to handle errors
import java.io.IOException;
  
public class GFG {
    public static void main(String[] args)
    {
  
        try {
            File Obj = new File("myfile.txt");
            if (Obj.createNewFile()) {
                System.out.println("File created: "
                                   + Obj.getName());
            }
            else {
                System.out.println("File already exists.");
            }
        }
        catch (IOException e) {
            System.out.println("An error has occurred.");
            e.printStackTrace();
        }
    }
}

Producción

An error has occurred.

2. Leer de un archivo: Usaremos la clase Scanner para leer el contenido de un archivo. A continuación se muestra una demostración de cómo leer el contenido de un archivo en Java:

Java

// Import the File class
import java.io.File;
  
// Import this class for handling errors
import java.io.FileNotFoundException; 
  
// Import the Scanner class to read content from text files
import java.util.Scanner; 
  
public class GFG {
    public static void main(String[] args)
    {
        try {
            File Obj = new File("myfile.txt");
            Scanner Reader = new Scanner(Obj);
            while (Reader.hasNextLine()) {
                String data = Reader.nextLine();
                System.out.println(data);
            }
            Reader.close();
        }
        catch (FileNotFoundException e) {
            System.out.println("An error has occurred.");
            e.printStackTrace();
        }
    }
}

Producción

An error has occurred.

3. Escribir en un archivo: usamos la clase FileWriter junto con su método write() para escribir texto en el archivo. A continuación se muestra una demostración de cómo escribir texto en un archivo en Java:

Java

// Import the FileWriter class
import java.io.FileWriter; 
  
// Import the IOException class for handling errors
import java.io.IOException; 
  
public class GFG {
    public static void main(String[] args)
    {
        try {
            FileWriter Writer
                = new FileWriter("myfile.txt");
            Writer.write(
                "Files in Java are seriously good!!");
            Writer.close();
            System.out.println("Successfully written.");
        }
        catch (IOException e) {
            System.out.println("An error has occurred.");
            e.printStackTrace();
        }
    }
}

Producción

An error has occurred.

4. Eliminar un archivo: Usamos el método delete() para eliminar un archivo. A continuación se muestra una demostración de cómo eliminar un archivo en Java:

Java

// Import the File class
import java.io.File; 
  
public class GFG {
    public static void main(String[] args)
    {
        File Obj = new File("myfile.txt");
        if (Obj.delete()) {
            System.out.println("The deleted file is : "
                               + myObj.getName());
        }
        else {
            System.out.println(
                "Failed in deleting the file.");
        }
    }
}

Producción

Failed in deleting the file.

Publicación traducida automáticamente

Artículo escrito por shreyasnaphad 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 *