Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como o "Read" sabe onde parou a leitura do arquivo?

Olá,

Fiquei com uma dúvida no método de extensão "Read()" que está dentro do laço "while": Digamos que eu tenha um arquivo de 1.650 bytes, e vou usar a mesma lógica apresentada no vídeo, assim o while que foi criado vai rodar a primeira vez e capturar 1024 bytes do arquivo e escrever na tela esses 1024 bytes , (pois o array de bytes suporta até 1024B), depois vai entrar de novo no while e capturar do arquivo os 626 bytes restantes e escrever na tela o que faltou... A pergunta é... como o "Read()" sabe de onde ele parou? Afinal ele continua a leitura do arquivo exatamente de onde parou e printa na tela a leitura do arquivo.... No caso isso é feito internamente no método Read certo?

Espero que tenha ficado claro,

agradeço.

1 resposta
solução!

Olá Marco!

Não é o Read() que sabe onde parou, mas sim a variável numeroDeBytesLidos.

Antes de entrar no while, numeroDeBytesLidos começa com o valor -1. Ao iterar pela primeira vez no while, numeroDeBytesLidos recebe o valor 1024. Na segunda vez numeroDeBytesLidos recebe o valor 626. Na terceira vez, como não tem mais bytes para percorrer, receberá o valor 0 e encerrará o while.

Já a variável fluxoDoArquivo que será responsável por enviar exatamente para a função Read() o que será escrito em cada iteração do while.

Espero ter ajudado!