Como leer un fichero binario en C#

Hola a todos, hoy os voy a explicar como podemos leer un fichero binario en C#.

Un fichero binario, es aquel fichero que no se puede leer de forma legible por un humano como una imagen (prueba a abrirlo con un bloc de notas).

Para leer un fichero binario en C#, tenemos que usar la clase FileStream.

Así se crea:


FileStream fichero = new FileStream("pelota.jpg", FileMode.Open, FileAccess.Read);

La ruta del fichero, debe de estar en la carpeta bin\Debug de vuestro proyecto. Yo he cogido una imagen aleatoria.

Además, debemos indicar con FileMode el modo de creación (abrir en este caso) y con FileAccess los accesos (lectura).

Después, necesitaremos un buffer o array de bytes para almacenar los bytes del fichero.


Byte[] buffer = new byte[fichero.Length];

El array tendrá la longitud del fichero.

 

Leeremos el fichero y lo almacenaremos en el buffer (le indicamos que lo inserte de 0 hasta su longitud total):


fichero.Read(buffer, 0, buffer.Length);

Ahora recorremos ese fichero.


for (int i = 0; i < buffer.Length; i++)
{
    Console.WriteLine(buffer[i]);
}

Por último, no olvides cerrar el fichero:

 


fichero.Close();

Si lo ejecutas, veras muchos números en la pantalla, esos son los bytes que conforman la imagen.

Aquí os dejo el ejemplo completo:


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ejemplo_Leer_Fichero_Binario
{
    class Program
    {
        static void Main(string[] args)
        {

            FileStream fichero = new FileStream("pelota.jpg", FileMode.Open, FileAccess.Read);

            Byte[] buffer = new byte[fichero.Length];

            fichero.Read(buffer, 0, buffer.Length);

            for (int i = 0; i < buffer.Length; i++)
            {
                Console.WriteLine(buffer[i]);
            }

            fichero.Close();

        }
    }
}

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Etiquetas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *