Entrada y Salida (I/O)

Introducción al manejo de archivos

El manejo de archivos en Java te permite leer y escribir datos desde y hacia archivos en el sistema de archivos del sistema operativo. Esto es útil para almacenar y recuperar información de manera persistente.

Lectura de Archivos

				
					import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class LecturaArchivo {
    public static void main(String[] args) {
        try {
            File archivo = new File("datos.txt");
            Scanner lector = new Scanner(archivo);

            while (lector.hasNextLine()) {
                String linea = lector.nextLine();
                System.out.println(linea);
            }
            lector.close();
        } catch (FileNotFoundException e) {
            System.out.println("Archivo no encontrado.");
        }
    }
}

				
			

En este ejemplo:

  • Se crea un objeto File que representa el archivo que queremos leer.
  • Se crea un objeto Scanner para leer el contenido del archivo línea por línea.
  • Se utiliza un bucle while para leer cada línea del archivo hasta que no haya más líneas.
  • Se cierra el Scanner después de su uso para liberar recursos.

Escritura de Archivos

				
					import java.io.FileWriter;
import java.io.IOException;

public class EscrituraArchivo {
    public static void main(String[] args) {
        try {
            FileWriter escritor = new FileWriter("nuevo.txt");
            escritor.write("¡Hola, mundo!\n");
            escritor.write("Esta es una línea escrita en el archivo.");
            escritor.close();
            System.out.println("Se escribió en el archivo correctamente.");
        } catch (IOException e) {
            System.out.println("Error al escribir en el archivo.");
            e.printStackTrace();
        }
    }
}

				
			

En este ejemplo:

  • Se crea un objeto FileWriter para escribir en el archivo especificado.
  • Se utiliza el método write() para escribir en el archivo.
  • Se cierra el FileWriter después de su uso.

Clases File, FileReader, FileWriter, BufferedReader, BufferedWriter

En Java, existen varias clases en el paquete java.io que facilitan el manejo de archivos. Algunas de las clases más comunes son File, FileReader, FileWriter, BufferedReader y BufferedWriter.

Clase File

La clase File se utiliza para representar archivos y directorios en el sistema de archivos.

				
					import java.io.File;

public class ClaseFile {
    public static void main(String[] args) {
        // Crear un objeto File para un archivo
        File archivo = new File("archivo.txt");

        // Crear un objeto File para un directorio
        File directorio = new File("directorio");
    }
}

				
			

Clases FileReader y FileWriter

Las clases FileReader y FileWriter se utilizan para leer y escribir archivos de texto, respectivamente.

				
					import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class ClasesFileReaderFileWriter {
    public static void main(String[] args) {
        try {
            // FileReader para leer un archivo
            FileReader lector = new FileReader("archivo.txt");

            // FileWriter para escribir en un archivo
            FileWriter escritor = new FileWriter("nuevo.txt");

            // Cerrar los recursos después de su uso
            lector.close();
            escritor.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

				
			

Clases BufferedReader y BufferedWriter

Las clases BufferedReader y BufferedWriter se utilizan para leer y escribir texto de manera más eficiente, respectivamente.

				
					import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class ClasesBufferedReaderBufferedWriter {
    public static void main(String[] args) {
        try {
            // BufferedReader para leer un archivo de texto
            BufferedReader lector = new BufferedReader(new FileReader("archivo.txt"));

            // BufferedWriter para escribir en un archivo de texto
            BufferedWriter escritor = new BufferedWriter(new FileWriter("nuevo.txt"));

            // Cerrar los recursos después de su uso
            lector.close();
            escritor.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

				
			

Streams (InputStream, OutputStream)

En Java, los streams son una forma de leer o escribir datos de manera secuencial desde o hacia una fuente de entrada o salida, como un archivo, un flujo de red o la consola.

InputStream y OutputStream

  • InputStream se utiliza para leer datos de una fuente, como un archivo o una conexión de red.
  • OutputStream se utiliza para escribir datos en una fuente, como un archivo o una conexión de red.
				
					import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Streams {
    public static void main(String[] args) {
        try {
            // InputStream para leer desde un archivo
            InputStream entrada = new FileInputStream("archivo.txt");

            // OutputStream para escribir en un archivo
            OutputStream salida = new FileOutputStream("nuevo.txt");

            // Cerrar los recursos después de su uso
            entrada.close();
            salida.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}