Я пытаюсь создать приложение, которое использует текстовый файл (удерживая значения, которые будут разрешать перечисления), чтобы создать визуальный интерфейс для отображения приложения. вопрос немного сложный, поэтому я думаю, что было бы лучше просто искупить результат:
то, что я хочу сделать, это прочитать файл 2 символа (должен быть числом) за раз, который затем будет контактирован с строкой [str] (с управляющим символом), чтобы я мог привязать эту строку к R. drawable [R.drawable.str], чтобы вернуться и отобразить правильное изображение.
более конкретно - сделать строку, чтобы дать R.drawable даже возможное решение так, как я хочу, или мне нужно танцевать вокруг него?
в какой-то момент жизненного цикла разработки приложений я буду реализовывать возможность генерировать эти файлы, а также использовать их в разделе. так можно ли гарантировать, что у пользователя нет доступа к ним, но они все еще могут существовать как форма текстового файла?
есть ли что-то конкретное, что мне нужно для чтения из файла в системе в "известном каталоге"?
Можно ли использовать carrage-return-line-feed при wtrting моих текстовых файлов и мне нужно сделать что-либо помимо управляющего кода \n, чтобы управлять им, поскольку принудительные возвращения сделают его более читаемым и могут добавить еще один уровень проверки ошибок для предотвращения модификации и ошибок чтения системы (если они возникают)?
В сценарии, в котором вы хотите предоставить некоторые текстовые файлы с приложением, вы можете включить их в каталог project/res/assets, а затем, возможно, скопировать их в "первый запуск" в каталог приложений/файлов в внутреннем телефоне память.
Каталог/files также будет хорошим местом для хранения любых файлов, создаваемых пользователем, если вы не хотите, чтобы у них был прямой доступ к самим файлам (доступ к внутренней памяти возможен только в том случае, если у пользователя есть root-доступ к телефон).
Что касается конкатенации текстовой строки для доступа к ресурсам, это не будет работать, поскольку все идентификаторы R.foo.bar фактически являются текстовыми "ключами" для целых идентификаторов. Другими словами, R.drawable.my_icon, например, существует только как "строка" в среде компилятора и преобразуется в целое число во время сборки.
Вы можете подумать о том, чтобы предоставить чертежи с именами, такими как image_01, image_02, и поместить их в свой каталог ресурсов - вы могли бы затем обратиться к ним/получить доступ к ним по имени файла, а не по идентификатору ресурса.
РЕДАКТИРОВАТЬ:. Пример копирования файлов из каталога ресурсов на телефонную SD-карту см. в ответе на этот вопрос... Android: как сделать скопировать файлы в "активы" на SD-карту?
Чтобы скопировать во внутренний каталог/файл, вы должны заменить эту строку...
out = new FileOutputStream("/sdcard/" + files[i]);
... с чем-то похожим на...
out = Context.openFileOutput(files[i], MODE_PRIVATE);
openFileOutput(...)
автоматически создает файл, который можно записать в каталог приложений/файлов. Аналогично, на более позднем этапе вы можете использовать openFileInput(...)
для чтения из каталога/files.