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íneasnextLine()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.");
}
}
}
FileWritercrea o abre un archivoPrintWriterpermite 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
FileyScanneroBufferedReader - Escritura de archivos: usar
FileWriteryPrintWriter
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.