Освой Android играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
2-й курс/Закрытая зона
Метод getFilesDir() - где мы
Куда записать файл?
Метод openFileOutput() - Сохраняем файл
Метод fileList() - Получаем список сохранённых файлов
Метод openFileInput() - Открываем файл для чтения
Метод deleteFile() - Удаляем файл
Метод getCacheDir() - Кэш для временных файлов
Сохраняем drawable из ресурсов в файл внутреннего хранилища (Kotlin)
Android использует файловую систему, основанную на Linux. Файлы хранятся в энергонезависимой флеш-памяти, встроенной в устройство, поэтому они не теряются, когда телефон выключают. Также многие устройства поддерживают встроенную и внешние карточки памяти.
Есть два варианта работы с файлами. Первый - это стандартные методы, принятые в Java, которые можно использовать, например, для работы с файлами и папками на внешнем накопителе. Это стандартные функции ввода/вывода из Java (пакет java.io).
Также существуют специальные Android-версии методов с файлами, которые относятся к отдельным приложениям. Необходимо помнить, что доступ к файлам приложений ограничен, чтобы вы не могли вносить беспорядок в данные других приложений. Механизм доступа определяется политикой внутреннего хранилища.
Понятие внутреннего хранилища вызывает путаницу как у пользователей, так и у разработчиков. Это связано с эволюцией операционной системы. Попробуем разобраться.
Вы как разработчик можете сохранять файлы непосредственно во внутренней памяти устройства. По умолчанию сохранённые файлы являются приватными для вашего приложения и невидимы для окружающего мира - другие приложения (другой разработчик) и пользователь устройства не могут получить к ним доступ. Когда пользователь удаляет приложение, то созданные файлы также удаляются.
У класса android.os.Environment есть методы для работы с папками и файлами. Все методы возвращают тип File, который может быть как файлом, так и папкой. Чтобы понять, с чем мы имеем дело, нужно вызвать метод isFile() или isDirectory() класса File.
Класс Environment имеет несколько удобных методов для чтения стандартных папок Android:
На практике, вам практически не придётся использовать эти методы. Также есть методы, связанные с внешним хранилищем, о которых поговорим в других статьях.
Вы вошли на сайт, как гость.
Необходимо зарегистрироваться, чтобы прочитать статью