1
resposta

Tentativa de solução diferente para resolver ultimo ciclo do buffer array!

Olá, Por favor! Para tentar resolver esta questão de o Buffer quando realiza o ultimo ciclo para resgatar os nomes do arquivo.txt. Não teria como darmos um clear no Buffer a cada ciclo? Como tentei fazer no código abaixo, adicionando uma linha que zera o buffer array? Porém deu um erro que não entendi o por que!!! Obrigado!

 static void Main(string[] args)
        {
            using (var fs = new FileStream("contas.txt", FileMode.Open))
            {
                var buffer = new byte[128]; // Buffer de 128 bytes
                var encoding = Encoding.UTF8;

                var bytesLidos = -1;

                while (bytesLidos != 0)
                {
                    bytesLidos = fs.Read(buffer, 0, 128);
                    var conteudo = encoding.GetString(buffer, 0, 128);
                    Console.Write(conteudo);
                    buffer = new byte[0];
                }
            }
            Console.ReadKey();
        } 
1 resposta

Olá Marcelo!

O problema é que a linha buffer = new byte[0]; faz a variável buffer apontar para um novo array de tamanho zero. Com isso, esse array não tem posições para inserir os dados.

Fiz o teste com buffer = new byte[128]; e funcionou normalmente.

Espero ter ajudado! Bons estudos!