Não fica claro na aula como as variáveis que foram criadas no método LeituraBinaria() recuperam os dados do arquivo. Como o ReadInt32, ReadDouble e ReadString buscam corretamente os dados que ficaram salvos no arquivo corretamente?
Não fica claro na aula como as variáveis que foram criadas no método LeituraBinaria() recuperam os dados do arquivo. Como o ReadInt32, ReadDouble e ReadString buscam corretamente os dados que ficaram salvos no arquivo corretamente?
Olá, estudante!
No método LeituraBinaria(), as variáveis são criadas para armazenar os dados que serão lidos do arquivo. O método ReadInt32, por exemplo, lê um inteiro de 32 bits do arquivo e o armazena na variável correspondente. O mesmo acontece com o ReadDouble e o ReadString, que leem um double e uma string, respectivamente.
Esses métodos sabem onde buscar os dados no arquivo porque eles são implementados na classe BinaryReader, que é responsável por fazer a leitura dos dados do arquivo binário de forma correta. É importante lembrar que a ordem em que os dados foram escritos no arquivo deve ser a mesma em que eles são lidos, para que a leitura seja feita corretamente.
Espero ter ajudado e bons estudos!
A documentação oficial da Microsof também é uma ótima fonte de consulta para responder como cada método da classe BinaryReader funciona.
Por exemplo, o ReadInt32()
: Lê um inteiro com sinal de 4 bytes do fluxo atual e avança a posição atual do fluxo em quatro bytes.
Referência: https://learn.microsoft.com/pt-br/dotnet/api/system.io.binaryreader.readint32?view=net-6.0
ReadDouble: Lê um valor de ponto flutuante de 8 bytes do fluxo atual e avança a posição atual do fluxo em oito bytes. https://learn.microsoft.com/pt-br/dotnet/api/system.io.binaryreader.readdouble?view=net-6.0
ReadString: Lê uma cadeia de caracteres do fluxo atual. A cadeia de caracteres é prefixada com o tamanho, codificado como um inteiro, sete bits por vez. https://learn.microsoft.com/pt-br/dotnet/api/system.io.binaryreader.readstring?view=net-6.0