Как правильно использовать файловую систему Android? - PullRequest
2 голосов
/ 23 января 2012

Я запускаю пример приложения для Android, и мне нужно иметь два файла, которые хранятся вместе с приложением во время установки. Во время выполнения приложение должно иметь возможность читать и записывать эти файлы.

Это не кажется большой задачей, но я прочитал различные инструкции (включая developer.android.com, O'Reilly Learning Android и некоторые подобные вопросы здесь) и так и не получил окончательного решения, которое привело бы к ответу мой вопрос.

Файлы достаточно малы (100 КБ), чтобы их можно было установить вместе с файлом .apk, что, насколько я понял, позволяет хранить их в data / data / packagename. Чтобы поместить туда файлы во время установки, я нашел простое решение - добавить файлы в папку res / raw в моем проекте Eclipse. Я так и сделал, но не смог найти файлы при тестировании приложения с эмулятором и DDMS.

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

Ответы [ 3 ]

1 голос
/ 23 января 2012

Поместите файлы предварительной сборки в каталог /asset вашего приложения.

И при первом запуске приложения скопируйте эти файлы в каталог /data/data/<application_package>/files,

Теперь выполните операции write и read для этих файлов из внутреннего хранилища.

Примечание: Убедитесь, что вам не разрешено выполнять операции записи для файлов, которые находятся в каталогах /asset или /res/raw (, поскольку они доступны только для чтения, ).

Также, если ваши файлы находятся в каталоге /res/raw,

вы можете получить эти файлы, используя inputtream как,

InputStream ins = getResources().openRawResource(R.raw.file);
0 голосов
/ 23 января 2012

См. Resources.openRawResource () выпускает Android для примера чтения необработанного ресурса.openRawResource предоставляет вам InputStream для чтения ваших данных.

0 голосов
/ 23 января 2012

Попробуйте этот урок .Он показывает, как получить InputStream из любого файла, который хранится в папке raw.

...