InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");
У меня есть файл в папке активов в подпапке, как указано выше. Однако он не получает файл, есть ли особый способ указать подпапку в папке с ресурсами?
Ян
InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");
У меня есть файл в папке активов в подпапке, как указано выше. Однако он не получает файл, есть ли особый способ указать подпапку в папке с ресурсами?
Ян
Редактировать: был неправ насчет подпапок.
Этот код отлично работает на 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();
Вы уверены, что правильно назвали имена?
"MyFolder/" + "MyFile.db3"
Имя файла для файлов, добавляемых в папку ресурсов, должно быть написано строчными буквами. поэтому имя файла, такое как MyFolder и Myfile.db3, является недопустимым. Переименуйте их в "myfolder" и "myfile.db3", тогда все будет нормально.
Ваш файл активов превышает 1 МБ?
Я заметил, что получаю такое же странное пустое исключение IOException, если пытаюсь открыть ресурс, превышающий этот размер. Тот факт, что он находится во вложенной папке, может быть отвлекающим маневром. Я пытаюсь открыть большой текстовый файл, чтобы обойти это ограничение, разделив его. Можете ли вы сделать что-то подобное с вашим файлом .db3?
У меня была похожая проблема: я изменил имя подпапки с «mp3» на «mpthree», и файлы были найдены.