IOException при чтении из InputStream

Я сталкиваюсь со странной проблемой при чтении изInputStream на платформе Android. Я'я не уверен, что это проблема, связанная с Android, или яЯ делаю неправильно в общем.

Единственное, что специфично для Android, это вызов:

InputStream is = getResources().openRawResource(R.raw.myfile);

Это возвращаетInputStream для файла из активов Android. В любом случае, здесьs, где я сталкиваюсь с проблемой:

bytes[] buffer = new bytes[2];
is.read(buffer);

Когда read () выполняется,IOException, Странно то, что, если я делаю два последовательных однобайтовых чтения (или любое количество однобайтовых чтений), исключений нет. Например, это работает:

byte buffer;
buffer = (byte)buffer.read();
buffer = (byte)buffer.read();

Любая идея, почему два последовательных однобайтовых чтения работают, но один вызов, чтобы прочитать оба одновременно, вызывает исключение?InputStream кажется в порядке ...is.available() возвращает более миллиона байтов (как и должно быть).

Трассировка стека показывает эти строки непосредственно перед:InputStream.read()

java.io.IOException
at android.content.res.AssetManager.readAsset(Native Method)
at android.content.res.AssetManager.access$800(AssetManager.java:36)
at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:542)

Изменение размера буфера на один байт все еще вызывает ошибку. Похоже, исключение возникает только при чтении в байтовый массив.

Если я усекаю файл до 100 000 байт (изначально файл: 1 917 408 байт), он работает нормально. Есть ли проблема с файлами более определенного размера?

Любая помощь приветствуется!

Спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос