1
resposta

[Dúvida] Arquivos grandes e maiores que a RAM do computador, como filmes e vídeos?

No trecho:


Nessa aula, você aprendeu:
Como lidar com arquivos grandes e maiores que a RAM do computador, como filmes e vídeos;
O que são Streams, classes que nos ajudam a exibir uma sequência de bytes; ✅
A usar o método Read() e buffers para ler arquivos dessa forma; ✅
Unicode e encoding UTF entendendo como eles podem nos ajudar nesse processo de decodificação de um arquivo. ✅


Nao me recordo ter visto algo com arquivos grandes

1 resposta

Oi, John.

A sua dúvida é bem pertinente. Embora o arquivo contas.txt usado no exemplo seja pequeno (apenas 24 kB), o conceito ensinado é a base para lidar com arquivos gigantescos.

Vou te explicar por que essa afirmação aparece no resumo da aula:

Quando abrimos um arquivo usando FileStream e um buffer (aquele array de bytes que criamos), não estamos carregando o arquivo inteiro para a memória RAM.

Imagine que você tem um balde (seu buffer de 1 kB) e uma piscina de dados (o seu arquivo).

  1. Você enche o balde na piscina.
  2. Processa o que está no balde (mostra no console).
  3. Esvazia o balde e volta na piscina para pegar mais um pouco.

Por que isso resolve o problema de arquivos grandes?

  • Economia de Memória: Se você tivesse um arquivo de vídeo de 10 GB e tentasse abrir tudo de uma vez, seu computador provavelmente travaria, pois a memória RAM (geralmente 8 GB ou 16 GB) não suportaria.
  • Processamento sob demanda: Com o while e o método Read(buffer, 0, 1024), o C# lê apenas 1 kB por vez. Não importa se o arquivo tem 20 kB ou 50 GB; o consumo de memória da sua aplicação será praticamente o mesmo, pois ela só "enxerga" aquele 1 kB que está no buffer naquele momento.

Então, quando o texto diz que você aprendeu a lidar com arquivos maiores que a RAM, ele se refere à estratégia de leitura em pedaços (streaming), que é a forma viável de processar grandes volumes de dados sem esgotar os recursos do sistema.

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