Olá, Fabrizio!
Dentro do loop while
, o valor da variável numeroDeBytesLidos
não será sempre o mesmo. Isso acontece porque o método Read
retorna o número total de bytes lidos do buffer. Ele pode ser menor que o número de bytes solicitado se essa quantidade de bytes não estiver disponível no momento, ou zero se o final do fluxo for atingido.
No código que você mencionou, o Read
está sendo utilizado para ler 1024 bytes do arquivo em cada iteração do loop. A cada leitura, o valor de numeroDeBytesLidos
será atualizado com a quantidade de bytes lidos. Por exemplo, se na primeira iteração forem lidos 1024 bytes, na segunda iteração podem ser lidos mais 1024 bytes, e assim por diante.
Dessa forma, o loop while
continuará executando enquanto o valor de numeroDeBytesLidos
for diferente de zero, ou seja, enquanto houver bytes a serem lidos do arquivo.
Bons estudos!