using System;
using System.IO;
namespace MostrarAgendaTfnos
{
  class Program
  {
    public static void MostrarFichero(string fichero)
    {
      BinaryReader br = null;
      try
      {
        // Abrir un flujo para leer del fichero
        br = new BinaryReader(new FileStream(fichero,
                   FileMode.Open, FileAccess.Read));

        // Declarar los datos a leer desde el fichero
        string nombre;
        int teléfono;
        do
        {
          // Leer un nombre y un teléfono (un registro)
          // desde el fichero. Cuando se alcance el
          // final del fichero el método utilizado para
          // leer lanzará una excepción del tipo:
          // EndOfStreamException.
          nombre = br.ReadString();
          teléfono = br.ReadInt32();
          // Mostrar los datos nombre y teléfono
          Console.WriteLine(nombre);
          Console.WriteLine(teléfono);
          Console.WriteLine();
        }
        while (true);
      }
      catch (EndOfStreamException e)
      {
        Console.WriteLine("Fin del listado");
      }
      finally
      {
        // Cerrar el flujo
        if (! (br == null)) br.Close();
      }
    }
    
    public static void Main(string[] args)
    {
      try
      {
        // Obtener el nombre del fichero
        Console.Write("Nombre del fichero: ");
        string nombreFichero = Console.ReadLine();
        MostrarFichero(nombreFichero);
      }
      catch (Exception e)
      {
        Console.WriteLine("Error: " + e.Message);
      }

      Console.Write("Pulse una tecla para continuar...");
      Console.ReadKey(true);
    }
  }
}
