Matriz vazia com BinaryReader em UploadedFile em c #
-
28-10-2019 - |
Pergunta
Considere o seguinte código:
Stream file = files[0].InputStream;
var FileLen = files[0].ContentLength;
var b = new BinaryReader(file);
var bytes = b.ReadBytes(FileLen);
Se eu carregar um arquivo CSV de 10 registros (257 bytes), o BinaryReader preencherá a matriz de bytes com "0".
Também escrevi um loop para percorrer o método ReadByte do BinaryReader e, na primeira iteração do loop, recebi a seguinte exceção:
Incapaz de ler além do final do fluxo
Quando aumento o arquivo CSV para 200 registros, tudo funciona bem.
A questão é: por que isso acontece em arquivos menores e se há uma solução alternativa que permite a leitura binária de arquivos menores.
Solução
Não sei por que, mas quando você está usando BinaryReader em um stream enviado, a posição inicial precisa ser definida explicitamente.
b.BaseStream.Position = 0;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow