Entrada y salida de datos en Java

Entrada y salida de datos en Java: guía completa para principiantes

En Java, la entrada y salida de datos (I/O) permite que un programa reciba información del usuario, lea archivos y escriba datos en la consola o en archivos externos.
Dominar las operaciones de I/O es fundamental para desarrollar aplicaciones interactivas y que manipulen datos de forma eficiente.

En este artículo se explican los conceptos clave sobre entrada y salida de datos en Java, incluyendo:

  • uso de Scanner
  • leer datos del usuario
  • lectura de archivos
  • escritura de archivos

Uso de Scanner

La clase Scanner se utiliza para capturar datos desde la entrada estándar (como el teclado) o desde archivos.

Ejemplo básico:

import java.util.Scanner;

public class ScannerEjemplo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // crear objeto Scanner

        System.out.print("Ingrese su nombre: ");
        String nombre = sc.nextLine(); // leer texto completo

        System.out.print("Ingrese su edad: ");
        int edad = sc.nextInt(); // leer número entero

        System.out.println("Hola " + nombre + ", tienes " + edad + " años.");

        sc.close(); // cerrar el scanner
    }
}

Leer datos del usuario

Scanner ofrece métodos para leer diferentes tipos de datos:

Método Tipo de dato
nextLine() String completo
next() String hasta el primer espacio
nextInt() Entero
nextDouble() Double
nextBoolean() Boolean

Ejemplo con varios tipos:

Scanner sc = new Scanner(System.in);

System.out.print("Ingrese un número entero: ");
int numero = sc.nextInt();

System.out.print("Ingrese un número decimal: ");
double decimal = sc.nextDouble();

System.out.print("Ingrese su nombre: ");
sc.nextLine(); // limpiar buffer
String nombre = sc.nextLine();

System.out.println("Número: " + numero + ", Decimal: " + decimal + ", Nombre: " + nombre);

sc.close();

Lectura de archivos

Java permite leer archivos de texto usando clases como File y Scanner o BufferedReader.

Ejemplo con Scanner:

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

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

            while (sc.hasNextLine()) {
                String linea = sc.nextLine();
                System.out.println(linea);
            }

            sc.close();
        } catch (FileNotFoundException e) {
            System.out.println("Archivo no encontrado.");
        }
    }
}
  • hasNextLine() verifica si hay más líneas
  • nextLine() lee una línea completa
  • Se debe manejar la excepción FileNotFoundException

Escritura de archivos

Para escribir en archivos, Java ofrece clases como FileWriter y PrintWriter.

Ejemplo usando FileWriter:

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

public class EscribirArchivo {
    public static void main(String[] args) {
        try {
            FileWriter fw = new FileWriter("salida.txt");
            PrintWriter pw = new PrintWriter(fw);

            pw.println("Hola, este es un ejemplo de escritura en archivo.");
            pw.println("Segunda línea de texto.");

            pw.close(); // cerrar el archivo
            System.out.println("Archivo escrito correctamente.");
        } catch (IOException e) {
            System.out.println("Error al escribir el archivo.");
        }
    }
}
  • FileWriter crea o abre un archivo
  • PrintWriter permite escribir texto con formato
  • Siempre cerrar el archivo para guardar cambios

Ejemplo completo de entrada y salida

import java.io.*;
import java.util.Scanner;

public class EntradaSalidaEjemplo {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese su nombre: ");
        String nombre = sc.nextLine();
        sc.close();

        // Escribir en archivo
        try (PrintWriter pw = new PrintWriter(new FileWriter("usuario.txt"))) {
            pw.println("Nombre ingresado: " + nombre);
            System.out.println("Nombre guardado en usuario.txt");
        } catch (IOException e) {
            System.out.println("Error al escribir archivo");
        }

        // Leer archivo
        try (Scanner scArchivo = new Scanner(new File("usuario.txt"))) {
            System.out.println("Contenido del archivo:");
            while (scArchivo.hasNextLine()) {
                System.out.println(scArchivo.nextLine());
            }
        } catch (FileNotFoundException e) {
            System.out.println("Archivo no encontrado");
        }
    }
}

Resumen

El manejo de entrada y salida de datos en Java es fundamental para interactuar con el usuario y trabajar con información externa. Los puntos clave son:

  • Scanner: leer datos desde el teclado
  • Leer datos del usuario: nextInt(), nextLine(), nextDouble()
  • Lectura de archivos: usar File y Scanner o BufferedReader
  • Escritura de archivos: usar FileWriter y PrintWriter

Dominar estas técnicas permite crear programas interactivos y aplicaciones que procesen datos de forma eficiente y segura.

Volver al indice de Programación en Java.

Scroll to Top