Lectura y escritura de archivos

Entrada/Salida y Streams en Java

Alex Liu

Software Development Engineer

Casting

  • Conversión entre distintos tipos de datos primitivos

  • Conversión de ampliación (widening) - automática de tamaño menor -> mayor

    • byte -> short -> char -> int -> long -> float -> double
// Widening casting - ocurre automáticamente
byte myByte = 8;
int myInt = myByte;
  • Conversión de reducción (narrowing) - manual, de mayor -> menor
// Narrowing casting - es manual
double myDouble = 3.14;
int myInt = (int) myDouble; // Fíjate en (int)
Entrada/Salida y Streams en Java

Casting específico para leer archivos

  • Casting de int a char: char data = (char) 123;
// Valor Unicode del carácter 'a'
int data = 97;
// Imprime directamente el dato en formato `int`
System.out.print(data);
// Haz cast de `int` a `char` e imprime
System.out.print((char)data);
97
a
1 https://www.ascii-code.com/
Entrada/Salida y Streams en Java

Leer datos de un archivo con FileReader

  • Importa la clase FileReader para habilitar la lectura de archivos
import java.io.FileReader;
  • Lee el archivo, imprime carácter a carácter y ciérralo
FileReader fr = new FileReader("example.txt");
int data = fr.read();
// Lee e imprime cada carácter
while (data != -1) {
    System.out.print((char) data);
    data = fr.read();
}
fr.close(); // Cierra el archivo para liberar recursos
Entrada/Salida y Streams en Java

Lectura eficiente con BufferedReader

  • BufferedReader - import java.io.BufferedReader;
    • Lee archivos de texto línea a línea
    • Más eficiente para archivos grandes
// Crea un objeto BufferedReader
BufferedReader br = new BufferedReader(new FileReader("example.txt"));
String line;
// Usa .readLine() para leer el archivo línea a línea
while ((line = br.readLine())!= null){
  System.out.println(line);
}
br.close();
Entrada/Salida y Streams en Java

Escribir datos con FileWriter

  • FileWriter:
    • Sobrescribe el contenido por defecto: cuidado para no perder datos
  • Importa FileWriter
import java.io.FileWriter;


// Crea un nuevo objeto `FileWriter` FileWriter fw = new FileWriter("example.txt"); // Escribe en el archivo con `.write() fw.write("Overwriting the file."); fw.close()
Entrada/Salida y Streams en Java

Añadir datos con FileWriter

  • FileWriter
    • Permite añadir datos al activar el modo append sin sobrescribir el contenido

$$

// Inicializa `FileWriter` en modo append
FileWriter fw = new FileWriter("example.txt", true);
// Añade datos al archivo
fw.write("Appending data.");
fw.close()
Entrada/Salida y Streams en Java

Escritura eficiente con BufferedWriter

  • BufferedWriter - import java.io.BufferedWriter;
    • Escribe texto de forma más eficiente en bloques más grandes
    • Minimiza las operaciones de escritura
// Crea un objeto BufferedWriter
BufferedWriter bw = new BufferedWriter(new FileWriter("example.txt"));
bw.write("Writing data");

// .newLine() para añadir saltos de línea
bw.newLine(); 
bw.close();
Entrada/Salida y Streams en Java

¡Vamos a practicar!

Entrada/Salida y Streams en Java

Preparing Video For Download...