Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre o retorno do método Read

Olá! Estava tentando entender o código e resolvi monitorar o valor que a variável numeroDeBytesLidos recebe durante as iterações do while. Aqui está o código:


            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);
                Console.WriteLine(numeroDeBytesLidos);
            }

E essa foi a saída no console: https://prnt.sc/r2vtde

Por que a variável recebeu o valor 1024 várias vezes, e só depois o valor mudou e chegou a 0?

1 resposta
solução!

Consegui entender! kk Eu não tinha me ligado que o arquivo dentro da variável fluxoDoArquivo era um arquivo com um tamanho de 24.161 bits.. Então como o buffer só aceitava no máximo 1024 bits(1KB), o Read foi lendo de 1kb em 1kb até chegar no final onde restou 609 e logo depois o arquivo foi lido por completo.