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.

Foi útil?

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
scroll top