Olá,
Durante os execícios da aula 4 CSharp 9, fiquei com a curiosidade de saber se eu conseguiria ler o mesmo arquivo que escrevi, com a hipótese de eu não saber o tipo de dados que gravei. Tentei utilizando o GetType() mas sem sucesso!
Existe como realizar a leitura do mesmo arquivo que acabei de criar descobrindo automaticamente o tipo?
Abaixo o código do exercício a parte que da exceção é o "var leitura = leitor.Read()"
Obrigado,
Console.WriteLine("=================== ESCREVENDO EM BINARIO ======================");
using (var fs = new FileStream("ArquivoBinario.txt", FileMode.Create))
using (var escritor = new BinaryWriter(fs))
{
escritor.Write("string");
escritor.Write(10);
var data = new DateTime(1977, 12, 30, 14, 00, 01);
var dataOADataDouble = data.ToOADate(); //Uma data Data de Automação OLE igual a do excel
escritor.Write(dataOADataDouble);
}
Console.WriteLine("=================== LENDO AQUIVO BINARIO ======================");
using (var fs = new FileStream("ArquivoBinario.txt", FileMode.Open))
using (var leitor = new BinaryReader(fs))
{
Console.WriteLine("Leu uma string do arquivo binário:" + leitor.ReadString());
Console.WriteLine("Leu um inteiro do arquivo binário:" + leitor.ReadInt32());
var dataLida = leitor.ReadDouble();
Console.WriteLine("Leu uma data do arquivo binário:" + dataLida);
Console.WriteLine("Leu uma data do arquivo binário e converteu:" + DateTime.FromOADate(dataLida));
}
Console.WriteLine("=================== LENDO AQUIVO DESCOBRINDO O TIPO ======================");
using (var fs = new FileStream("ArquivoBinario.txt", FileMode.Open))
using (var leitor = new BinaryReader(fs))
{
while (leitor.BaseStream.Position != leitor.BaseStream.Length)
{
var leitura = leitor.Read();
Console.WriteLine($"Leu e descobriu um> {leitor.GetType()} valor: {leitura}" ) ;
}
}