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

Entradas populares de este blog

Ficheros (3/?). Flujos de caracteres. FileWriter, BufferedWrite, PrintWriter