Подтвердить что ты не робот

Активы Android с дополнительными папками

InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");

У меня есть файл в папке с ресурсами в подпапке, как указано выше. Однако он не получает файл, есть ли специальный способ указать подпапку в папке с ресурсами?

Ян

4b9b3361

Ответ 1

Изменить: не было прав в подпапках.
Этот код работает отлично на 1,5 (для файла sample.txt, помещенного в папку sub в assets):

InputStream is = getAssets().open("sub/sample.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null) {
    Log.e("wtf", line);
}
br.close();

Вы уверены, что у вас есть имена правильно?

Ответ 2

Является ли ваш файл активов более 1 МБ?

Я замечаю, что я получаю такое же нечетное, пустое IOException, если попытаюсь открыть актив, который превышает этот размер. Тот факт, что он находится в подпапке, может быть красной селедкой. Я пытаюсь открыть большой текстовый файл, чтобы я мог преодолеть этот предел, разделив его. Можете ли вы сделать что-то подобное с вашим .db3 файлом?

Ответ 3

"MyFolder/" + "MyFile.db3"

Имя файла для файлов, добавленных в папку активов, должно быть в строчной букве. поэтому имя файла, такого как MyFolder и Myfile.db3, является недопустимым. Переименуйте их в "myfolder" и "myfile.db3", тогда все будет хорошо.