Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created July 11, 2015 15:18

Revisions

  1. Fhernd created this gist Jul 11, 2015.
    62 changes: 62 additions & 0 deletions LecturaEscrituraArchivoBinario.cs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,62 @@
    // OrtizOL - xCSw - http://ortizol.blogspot.com

    using System;
    using System.IO;

    namespace Receta.CSharp.R0508
    {
    public class LecturaEscrituraArchivoBinario
    {
    public static void Main()
    {
    Console.WriteLine(Environment.NewLine);

    // Crea objeto `FileStream` para referenciar un archivo binario -ArchivoBinario.bin-:
    using (FileStream fs = new FileStream("ArchivoBinario.bin", FileMode.Create))
    {
    // Escritura sobre el archivo binario `ArchivoBinario.bin` usando un
    // objeto de la clase `BinaryWriter`:
    using (BinaryWriter bw = new BinaryWriter(fs))
    {
    // Escritura de datos de naturaleza primitiva:
    bw.Write(9517.35M);
    bw.Write("OrtizOL");
    bw.Write("OrtizOL - xCSw");
    bw.Write('!');
    }
    }

    Console.WriteLine("Los datos han sido escritos en el archivo `ArchivoBinario.bin`.");
    Console.WriteLine("Presione Enter para iniciar el proceso de lectura.\n");
    Console.ReadLine();

    // Apertura del archivo `ArchivoBinario.bin` en modo lectura:
    using (FileStream fs = new FileStream("ArchivoBinario.bin", FileMode.Open))
    {
    // Muestra la información tal cual está escrita en el archivo binario:
    using (StreamReader sr = new StreamReader(fs))
    {
    Console.WriteLine(sr.ReadLine());
    Console.WriteLine();

    // Lectura y conversión de los datos binarios en el tipo de
    // correspondiente:

    // Posiciona el cursor desde se iniciara la lectura del
    // archivo `ArchivoBinario`:
    fs.Position = 0;

    using (BinaryReader br = new BinaryReader(fs))
    {
    Console.WriteLine(br.ReadDecimal());
    Console.WriteLine(br.ReadString());
    Console.WriteLine(br.ReadString());
    Console.WriteLine(br.ReadChar());
    }
    }
    }

    Console.WriteLine(Environment.NewLine);
    }
    }
    }