Підтримка файлової системи – РОЗРОБКА ІГОР ДЛЯ ОС ANDROID

Android пропонує нам кілька способів читання і запису файлів У цьому розділі ми розглянемо питання роботи з ресурсами і доступ до зовнішнього сховища (яким найчастіше є SD-карта) Почнемо з ресурсів

Робота з ресурсами

Ми вивчили набір каталогів, що входять в проект Android, і визначили папки assets / і res / як контейнери для наших файлів, що поставляються разом з нашим додатком При обговоренні файлу маніфесту я говорив, що ми не будемо використовувати каталог res /, оскільки це накладає обмеження на внутрішню структуру Папка assets / – це місце, куди будемо поміщати всі наші файли з тією ієрархією каталогів, яка нам подобається

Доступ до файлів з assets / здійснюється за допомогою класу AssetManager Отримати посилання на цей клас можна так:

З інтерфейсом Context ми вже раніше стикалися – він реалізується класом Acti vity У реальному житті ми будемо отримувати AssetManager якраз від активності

Тепер, коли у нас є AssetManager, ми можемо почати відкривати файли приблизно так:

Цей метод повертає старий добрий Java InputStream, за допомогою якого можна читати будь-який тип файлу Єдиний аргумент методу AssetManager ореп – імя файлу, повязане з папкою активів У попередньому прикладі у нас є два каталоги в папці assets /, при цьому другий (dir2 /) є дочірнім для першого (di г /) У проекті Eclipse файл буде розташований в assets / di r / di г2 /

Створимо просту тестову активність для перевірки цього функціоналу Нам потрібно завантажити текстовий файл myawesometext txt з підкаталогу texts директорії assets / Вміст цього файлу буде показуватися в TextVi ew Лістинг 47 демонструє вихідний код цієї приголомшливої ​​активності

Лістинг 47 AssetsTestjava, що демонструє читання файлу активів package combadogiсandroidgames

Жодних сюрпризів, за винятком того, що завантаження простого тексту з InputStream в Java досить багатослівна Я написав маленький метод oadTextFi1е, що видавлює всі байти з InputStream і повертає їх у вигляді рядка В даному випадку я маю на увазі, що кодування файлу – UTF-8 Залишок коду – відлов і обробка різних винятків Малюнок 410 показує висновок цієї маленької активності

Рис 410 Виведення тексту

З цього розділу ви повинні винести наступні моменти

Завантаження текстового файлу з InputStream в Java кілька заплутана Зазвичай ми будемо здійснювати цю операцію за допомогою інших методів, наприклад Apache IOUtils Я залишу це вам в якості домашнього завдання

Ми можемо тільки читати ресурси, але не змінювати їх

Ми можемо легко змінити метод 1oadTextFi1е, щоб він завантажуються не текстові, а двійкові дані Для цього необхідно лише повертати замість рядка масив байтів

&nbsp

Джерело: Mario Zechner / Маріо Цехнер, «Програмування ігор під Android», пров Єгор Сидорович, Євген зазноби, Видавництво «Пітер»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*