Opa, Rodrigo. Beleza?
Os argumentos para o método Read
são:
- Buffer;
- Índice da posição inicial do buffer a ser usada;
- Quantidade de bytes a serem escritos no buffer;
Aquele 0
não é a posição do stream e sim a posição a ser usada no buffer - você poderia trocar por 10
, por exemplo, e o buffer só seria utilizado a partir do índice 10
(mas, cuidado para não tentar usar mais bytes do que cabe no buffer, senão uma exceção será lançada).
Quando você chama o método Read
, ele faz a leitura da quantidade de bytes que você pediu (ou menos, se chegou ao fim) e atualiza a posição automaticamente.
No curso, não utilizamos a propriedade Position
, mas, você pode acompanhar a posição do stream imprimindo este valor na tela:
var quantidadeBytesLidos = -1;
while(quantidadeBytesLidos != 0)
{
quantidadeBytesLidos = fluxoDoArquivo.Read(buffer, 0, 1024);
EscreverBuffer(buffer);
Console.WriteLine(fluxoDoArquivo.Position);
}