Открыть файл за пределами папки активов с помощью assetManager

У меня есть двоичный файл в корне apk, и я могу проверить его:

AssetManager assets = Context().getResources().getAssets();
assets.list("/")

Он существует в возвращающемся списке. Но как я могу открыть это?
Потому что, когда я пытаюсь открыть файл с помощью этого кода:

assets.open("/test.bin")

Я столкнулся с FileNotFoundException.

1 ответ

Решение

Наконец, я решил это, используя getClass().getResourceAsStream() вместо assetManager:

public byte[] loadBinAsset(String name) {
    AssetManager assets = context.getResources().getAssets();
    InputStream stream = null;
    try {
        try {
            stream = assets.open(name);
        } catch (IOException e) {
            stream = context.getClass().getResourceAsStream("/" + name);
        }
        return readFully(stream);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (stream != null) {
                stream.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return null;
}
Другие вопросы по тегам