Исключение при попытке прочитать необработанный файл ресурса [Android] - PullRequest
1 голос
/ 03 ноября 2011

Я пытаюсь прочитать данные из необработанного файла ресурсов на Android (на Java).По какой-то причине inStream.read (txt) вызывает исключение.Кто-нибудь может сказать мне, что я делаю не так?Нужно ли мне установить разрешение?

try
{
        resourceId = R.raw.testmodel;
    if( resourceId==0 )
        return false; // invalid id

    InputStream inStream = context.getResources().openRawResource(resourceId);

    if( inStream==null )
        return false;

    byte[] txt = new byte[512];
    inStream.read(txt);
    //Toast.makeText(context,new String(txt),Toast.LENGTH_LONG).show();
    inStream.close();
}catch(Exception e)
{
    Toast.makeText(context,"strange exception",Toast.LENGTH_LONG).show();
    return false;
}

1 Ответ

1 голос
/ 27 мая 2012

Существует ограничение в 1 МБ для ресурсов и необработанных данных в сжатых файлах apk.

Ограничение снято в версии 2.3.

Возможные обходные пути: 1) разбиение файла на блоки по 1 МБ.2) дать имени файла расширение «mp3».Файлы с некоторыми конкретными расширениями по умолчанию не сжимаются и, следовательно, не подлежат ограничению «сжатых» ресурсов.Расширение "mp3" является одним из исключений.

Для получения дополнительной информации:

/1948165/zagruzka-failov-razmerom-bolee-1-m-iz-papki-resursov

https://stackoverflow.com/questions/1273300/ioexception-while-reading-from-inputstream

...