Legal saber que o método GetString() aceita mais parâmetros e blá-blá-blá, mas antes da resolução, eu usei essa lógica, já que o buffer só serve para armazenar 1KB e sempre o mesmo é totalmente reescrito desde que haja 1KB, então simplemente movi a criação do array pra dentro do while, pois para cada loop ele será vazio e assim não correr o risco de ter dados repetidos. Mas confesso que a solução apresentada no vídeo, pareceu mais "elegante", quanto a performance, para esse escopo de aplicação, acredito ter impacto irrelevante.
static void Main(string[] args)
{
var enderecoDoArquivo = "contas.txt";
using(var fluxoDoArquivo = new FileStream(enderecoDoArquivo, FileMode.Open))
{
var numeroDeBytesLidos = -1;
//var buffer = new byte[1024]; // 1KB
while (numeroDeBytesLidos != 0)
{
var buffer = new byte[1024]; // Criação do array aqui
numeroDeBytesLidos = fluxoDoArquivo.Read(buffer, 0, 1024);
Escreverbuffer(buffer);
}
// public override int Read(byte[] array, int offset, int count);
}
Console.ReadLine();
}
static void Escreverbuffer(byte[] buffer)
{
var utf8 = new UTF8Encoding();
var texto = utf8.GetString(buffer);
Console.Write(texto);
//foreach (var meuByte in buffer)
//{
// Console.Write(meuByte);
// Console.Write(" ");
//}
}
Att.