Início > .NET > Escrevendo e Lendo Arquivo Binário em C#

Escrevendo e Lendo Arquivo Binário em C#

Escrever arquivos binários em C# é simples. Basta adicionar as declarações using:

using System.Runtime.Serialization.Formatters.Binary;
using System.IO

Depois, criamos um objeto FileStream que representa o nosso arquivo.

//representa o arquivo que vamos criar
FileStream file = new FileStream("arquivo.dat", FileMode.Create);

O primeiro parâmetro indica o caminho (ou nome) do arquivo e a sua extensão.

O segundo parâmetro é o modo de abertura do arquivo:

  • FileMode.Create: Cria um novo arquivo. Se o arquivo existir, os dados serão adicionados no final.
  • FileMode.CreateNew: Cria um novo arquivo. Se o arquivo já existir, uma exceção será lançada.
  • FileMode.Append: Abre um arquivo e adiciona dados ao final. Se o arquivo não existir, ele é criado.
  • FileMode.Open: Abre um arquivo existente. Se o arquivo não existir, uma exceção será lançada.

Agora criamos um objeto BinaryWriter, que gravará os dados no nosso arquivo:

BinaryWriter bw = new BinaryWriter(file);
//grava uma string no arquivo
bw.Write("ArquivoBinario");
bw.Close();

O BinaryWriter recebe o arquivo como parâmetro (FileStream).

Pronto! Nosso arquivo foi criado.

Ler um arquivo binário é semelhante:

//representa o arquivo
FileStream file = new FileStream("arquivo.dat", FileMode.Open);
//cria o leitor do arquivo
BinaryReader br = new BinaryReader(file);
//lê uma string do arquivo
Console.Write(br.ReadString());

Note que na leitura usamos o objeto FileStream com o parâmetro FileMode.Open, já que iremos apenas ler o arquivo.

Nesse exemplo apenas lemos uma string do arquivo, mas poderíamos ter lido um inteiro ou um booleano.

Também é possível ler/escrever objetos, usando serialização, mas esse é um assunto pra outro post.

Código completo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

namespace Binary
{
    class Program
    {
        static void Main(string[] args)
        {
             FileStream file = new FileStream("arquivo.dat", FileMode.Create);
             BinaryWriter bw = new BinaryWriter(file);
             bw.Write("ArquivoBinario");
             bw.Close();
             file = new FileStream("arquivo.dat", FileMode.Open);
             BinaryReader br = new BinaryReader(file);
             Console.Write(br.ReadString());
             Console.ReadKey();
        }
    }
}

Anúncios
Categorias:.NET
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: