Olá, gostaria apenas de acrescentar que quando utilizamos o using, não é mais necessário utilizar o fluxoDoArquivo.Close().
Outra correção é que o Console.ReadLine(); tem que ir para fora do bloco de código do using.
Sendo assim, o código correto, até o fim desta aula seria:
using ByteBankIO;
using System.Text;
class Program
{
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];
while (numeroDeBytesLidos != 0)
{
numeroDeBytesLidos = fluxoDoArquivo.Read(buffer, 0, 1024);
EscreverBuffer(buffer, numeroDeBytesLidos);
}
}
Console.ReadLine();
}
static void EscreverBuffer(byte[] buffer, int bytesLidos)
{
var utf8 = Encoding.UTF8;
var texto = utf8.GetString(buffer, 0, bytesLidos);
Console.Write(texto);
}
}
Importante frisar que utilizar o Close em conjunto com o using não está errado, entretanto é redundância no código. E o Console.ReadLine() deve sair do bloco de código se não o arquivo fica "preso" até o console ler alguma tecla pressionada.