0
respostas

O arquivo não está sendo lido por completo

Olá, pessoal. Por algum motivo o meu arquivo não é lido até o final. Não encontrei o problema. Meu código está exatamente como mostrado na aula. Segue:

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

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

            var buffer = new byte[1024]; // 1 kb
            var numeroDeBytesLidos = -1;

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

        static void EscreverBuffer(byte[] buffer)
        {
            var utf8 = new UTF8Encoding(); // Encoding.Default; funciona também no Windows, pois a criptografia padrão do sistema é a UTF-8.
            var texto = utf8.GetString(buffer);

            Console.Write(texto);

            /* ESCREVENDO OS BYTES NA TELA
            foreach(var meuByte in buffer)
            {
                Console.Write(meuByte);
                Console.Write(" ");
            }
            */
        }
    }

Inclusive, gostaria de ressaltar que, continuando para a próxima aula, pude perceber que o arquivo do Guilherme para de ser lido no mesmo ponto que o meu (conta do Milton, porém só é mostrado no console até o "Milt"). Existem várias outas contas após no arquivo txt. Por que isso acontece?

UPDATE!

Já resolvi. Bastava contabilizar os bytes que já foram lidos. A resposta veio duas aulas depois! Valeu, galera!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software