2
respostas

CONSOLE PERDENDO INFORMAÇÕES

Verifiquei que o Console do Visual Studio deixou de apresentar o resultado completo ao percorrer o arquivo .txt.

Conforme o programa é executado o console apaga os primeiros resultados fazendo com que a lista perca informações do início da interação.

Depurei o código teclando F11 e vi que o programa executa normalmente, mas depois de uma dada quantidade de interações as linhas antigas desaparecem do Console.

Como posso resolver esse problema, pois já havia rodado antes o mesmo código e estava normal, mas agora estou com esse problema na saída apresentada no Console.

Segue código abaixo:

       static void Main(string[] args)
        {
            var enderecoArquivo = "teste.txt";

            using (var fluxoArquivo = new FileStream(enderecoArquivo, FileMode.Open)) 
            {
                var buffer = new byte[1024];
                var bytesLidos = -1;

                while (bytesLidos != 0)
                {
                    bytesLidos = fluxoArquivo.Read(buffer, 0, 1024);
                    Escreve(buffer);
                }
            }

            Console.ReadLine();
        }

        static void Escreve(byte[] buffer)
        {
            var utf8 = new UTF8Encoding();

            var texto = utf8.GetString(buffer);

            Console.Write(texto);
2 respostas

Olá Nicolas, como vai?

Na verdade o arquivo acaba se repetindo, mas da a impressão de que ele não completa a leitura.

Ao final da aula, com as modificações vista, o professor ajusta esse problema. O código ficaria desta forma:

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

            using (var fluxoArquivo = new FileStream(enderecoArquivo, FileMode.Open))
            {
                var buffer = new byte[1024];
                var bytesLidos = -1;

                while (bytesLidos != 0)
                {
                    bytesLidos = fluxoArquivo.Read(buffer, 0, 1024);

                    Escreve(buffer, bytesLidos);
                }
            }

            Console.ReadLine();

        }

        static void Escreve(byte[] buffer, int byteLidos)
        {
            var utf8 = new UTF8Encoding();
            //var utf8 = Encoding.Default;

            var texto = utf8.GetString(buffer, 0, byteLidos);

            Console.Write(texto);
        }
    }

Abraços e bons estudos!

Oi Ana, tudo tranquilo.

Entendo, mas o problema ocorre com os nomes do início da lista.

Quando executo o código as informações vão sendo escritas no Console, mas depois depois de algumas iterações as primeiras que foram escritas "desaparecem" como se tivessem sido apagadas ou descartadas pelo Console.

Nas primeiras vezes que executei o código ele apresentava a lista completa começando pela linha do Jonathan, mas depois parou de ter esse comportamento.

Parece que alguma configuração do Console do Visual Studio mudou para carregar os dados, mas não sei o que provocou esse comportamento, nem onde corrigir.