Ficheros (4/5). Flujos de bytes. Ejercicio 9
Ejercicio
9:
Realizar un programa en Java que escriba
datos en un fichero binario. Los datos se deben tomar de dos arrays, una
conteniendo nombres y la otra edades (números). Se recorrerán simultaneamente los
dos arrays y se van escribiendo sus datos en el fichero (nombre, edad).
Posteriormente se recuperan los datos escritos en el fichero mostrándose por
pantalla. Realiza dos métodos, uno para leer y otro para escribir.
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FicheroTiposPrimitivos {
public static void EscribirDatos() {
try {
// Insertamos datos en un fichero
tomando los datos de dos matrices
int i;
File
file = new File("FicheroBinario.dat");
FileOutputStream
StreamOut = new FileOutputStream(file);
DataOutputStream
datos = new DataOutputStream(StreamOut);
String names[]= {"Julia", "Miguel", "Lucía", "Carlos", "Alvaro"};
int ages[]= {4, 7, 47, 45, 38};
for (i=0; i<ages.length; i++) {
datos.writeUTF(names[i]);
datos.writeInt(ages[i]);
}
datos.close();
}catch (FileNotFoundException fnf) {
System.out.println("No se encuentra el
fichero");}
catch (IOException io) {
System.out.println("Error de
entrada/salida");}
}
public static void LeerDatos() {
try {
int i;
File
file = new File("FicheroBinario.dat");
FileInputStream
StreamIn = new FileInputStream(file);
DataInputStream
datos = new DataInputStream(StreamIn);
String name;
int age;
try {
while (true) {
name = datos.readUTF();
age = datos.readInt();
System.out.println("Nombre: " + name + " Edad: " + age);
}
}catch (EOFException eofe) {}
datos.close();
}catch (FileNotFoundException fnf) {
System.out.println("No se encuentra el fichero");}
catch (IOException io) {
System.out.println("Error de entrada/salida");}
}
public static void main(String[] args) {
EscribirDatos();
LeerDatos();
}
}
Comentarios
Publicar un comentario