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).
- Você enche o balde na piscina.
- Processa o que está no balde (mostra no console).
- 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.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!