Android-файл IO - PullRequest
       2

Android-файл IO

1 голос
/ 11 апреля 2011

Я пытаюсь создать приложение, которое использует текстовый файл (содержащий значения, которые будут преобразованы в перечисления) для создания визуального интерфейса для отображения приложения.вопрос немного сложен, поэтому я думаю, что было бы лучше просто объяснить результат:

, что я хочу сделать, это прочитать файл 2 символа (должны быть числами) за один раз, который затем будет объединенв строку [str] (с управляющим символом), чтобы я мог прикрепить эту строку в R.drawable [R.drawable.str], чтобы вернуться и отобразить правильное изображение.

более конкретно - созданиеСтрока, которую можно передать R.drawable, даже если это возможно, решить, как я хочу, или мне нужно танцевать вокруг нее?

В какой-то момент жизненного цикла разработки приложений я буду реализовывать возможность также генерировать этифайлы, а также для использования в divice.поэтому можно ли гарантировать, что пользователь не имеет к ним доступа, но они все еще могут существовать в виде текстового файла?

Есть ли что-то конкретное, что мне нужно для чтения из файла в системе в "известный каталог "?

могу ли я использовать carrage-return-line-feed при выводе моих текстовых файлов и нужно ли мне что-либо делать, кроме управляющего кода \ n, чтобы управлять им, так как принудительный возврат сделает его более читабельным иМожно ли добавить еще один уровень проверки ошибок, чтобы предотвратить изменение, и ошибки чтения системы (если они возникают)?

1 Ответ

1 голос
/ 11 апреля 2011

Для сценария, в котором вы хотите предоставить некоторые текстовые файлы приложению, вы можете включить их в каталог проекта / res / assets и затем, возможно, скопировать их при первом запуске в каталог приложения / files на внутреннем телефоне.memory.

Каталог / files также будет хорошим местом для хранения любых файлов, которые создает пользователь, если вы не хотите, чтобы они имели прямой доступ к самим файлам (доступ к внутренней памяти возможен только при условии, что пользовательимеет корневой доступ к телефону).

Что касается объединения текстовой строки для доступа к ресурсам, это не будет работать, поскольку все идентификаторы R.foo.bar на самом деле являются текстовыми «ключами» к целочисленным идентификаторам.Другими словами, R.drawable.my_icon, например, существует только как «строка» в среде компилятора и преобразуется в целое число во время сборки.

Вы могли бы рассмотреть возможность предоставления чертежным объектам с именами, такими как image_01, image_02 и поместив их в свой каталог ресурсов - вы можете обратиться к ним / получить к ним доступ по имени файла, а не по идентификатору ресурса.

РЕДАКТИРОВАТЬ: Пример копирования файлов из каталога активовна телефон SDCARD, см. ответ на этот вопрос ... Android: Как скопировать файлы в 'assets' на SDCard?

Чтобы скопировать во внутренний каталог / files, вы бызамените эту строку ...

out = new FileOutputStream("/sdcard/" + files[i]);

... на что-то похожее на ...

out = Context.openFileOutput(files[i], MODE_PRIVATE);

openFileOutput(...) автоматически создаст файл, который можно записать в приложение /каталог файлов.Точно так же позже вы можете использовать openFileInput(...) для чтения из каталога / files.

...