Olá, pessoal. Por algum motivo o meu arquivo não é lido até o final. Não encontrei o problema. Meu código está exatamente como mostrado na aula. Segue:
class Program
{
static void Main(string[] args)
{
var enderecoDoArquivo = "contas.txt";
var fluxoDoArquivo = new FileStream(enderecoDoArquivo, FileMode.Open);
var buffer = new byte[1024]; // 1 kb
var numeroDeBytesLidos = -1;
while (numeroDeBytesLidos != 0)
{
numeroDeBytesLidos = fluxoDoArquivo.Read(buffer, 0, 1024);
EscreverBuffer(buffer);
}
Console.ReadLine();
}
static void EscreverBuffer(byte[] buffer)
{
var utf8 = new UTF8Encoding(); // Encoding.Default; funciona também no Windows, pois a criptografia padrão do sistema é a UTF-8.
var texto = utf8.GetString(buffer);
Console.Write(texto);
/* ESCREVENDO OS BYTES NA TELA
foreach(var meuByte in buffer)
{
Console.Write(meuByte);
Console.Write(" ");
}
*/
}
}
Inclusive, gostaria de ressaltar que, continuando para a próxima aula, pude perceber que o arquivo do Guilherme para de ser lido no mesmo ponto que o meu (conta do Milton, porém só é mostrado no console até o "Milt"). Existem várias outas contas após no arquivo txt. Por que isso acontece?
UPDATE!
Já resolvi. Bastava contabilizar os bytes que já foram lidos. A resposta veio duas aulas depois! Valeu, galera!