1
resposta

[Projeto] Faça como eu fiz: abrindo um arquivo de texto

using ByteBankIO;
using System.Text;

class Program
{
    static void Main(string[] args)
    {
        var enderecoDoArquivo = "contas.txt";
        var numeroDeBytesLidos = -1;

        var fluxoDoArquivo = new FileStream(enderecoDoArquivo, FileMode.Open);

        var buffer = new byte[1024]; // 1 KB

        while(numeroDeBytesLidos != 0)
        {
            numeroDeBytesLidos = fluxoDoArquivo.Read(buffer, 0, 1024);
            EscreverBuffer(buffer);
        }

        /*
        Devoluções:
        0 número total de bytes lidos do buffer. Isso poderá ser menor que o número de
        Bytes solicitado se esse número de bytes não estiver disponível no momento, ou
        Zero, se o final do fluxo for atingido
        */

        EscreverBuffer(buffer);

        Console.ReadLine();
    }

    static void EscreverBuffer(byte[] buffer)
    {

        var utf8 = new UTF8Encoding();
        var texto = utf8.GetString(buffer);
        Console.Write(texto);

        /*
        foreach (var meuByte in buffer)
        {
        Console.Write(meuByte);
        Console.Write("");
        }
        */
    }
}
1 resposta

Oi, Matheus! Como vai?

Agradeço por compartilhar.

Gostei da forma como você utilizou o FileStream junto com o loop de leitura até o fim do arquivo. Isso mostra um bom entendimento de como trabalhar com buffers e leitura contínua de dados. Um ponto que chama atenção é o uso do método EscreverBuffer, separando bem a responsabilidade de leitura e exibição, o que deixa o código mais organizado.

Você pode testar o using pra garantir que o arquivo seja fechado automaticamente após o uso.


using (var fluxo = new FileStream("contas.txt", FileMode.Open))
{
    byte[] buffer = new byte[1024];
    int bytesLidos = fluxo.Read(buffer, 0, buffer.Length);
    Console.WriteLine(bytesLidos);
}

Esse código abre o arquivo, lê os bytes e garante que o recurso seja liberado corretamente ao final do bloco.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!