Открыть файл за пределами папки активов с помощью 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;
}