- Работа с файловой системой
- Чтение и сохранение файлов
- Правильная работа с файлами в Android
- Полный список
- Внутренняя память
- SD карта
- Как открыть файлы на Андроиде: популярные приложения
- Скачивание торрентов на смартфоне
- Работа с исполняемыми файлами
- Как открыть архив
- Открытие файлов Office
- Работа и редактирование pdf на Андроид
- Файлы html на Android
- Файловый менеджер для Андроид
- ES Проводник
- Total Commander
- Amaze File Manager
- Другие файловые менеджеры
- Итоги
Работа с файловой системой
Чтение и сохранение файлов
Работа с настройками уровня activity и приложения позволяет сохранить небольшие данные отдельных типов (string, int), но для работы с большими массивами данных, такими как графически файлы, файлы мультимедиа и т.д., нам придется обращаться к файловой системе.
ОС Android построена на основе Linux. Этот факт находит свое отражение в работе с файлами. Так, в путях к файлам в качестве разграничителя в Linux использует слеш «/», а не обратный слеш «\» (как в Windows). А все названия файлов и каталогов являются регистрозависимыми, то есть «data» это не то же самое, что и «Data».
Приложение Android сохраняет свои данные в каталоге /data/data/ / и, как правило, относительно этого каталога будет идти работа.
Для работы с файлами абстрактный класс android.content.Context определяет ряд методов:
boolean deleteFile (String name) : удаляет определенный файл
String[] fileList () : получает все файлы, которые содержатся в подкаталоге /files в каталоге приложения
File getCacheDir() : получает ссылку на подкаталог cache в каталоге приложения
File getDir(String dirName, int mode) : получает ссылку на подкаталог в каталоге приложения, если такого подкаталога нет, то он создается
File getExternalCacheDir() : получает ссылку на папку /cache внешней файловой системы устройства
File getExternalFilesDir(String type) : получает ссылку на каталог /files внешней файловой системы устройства
File getFileStreamPath(String filename) : возвращает абсолютный путь к файлу в файловой системе
FileInputStream openFileInput(String filename) : открывает файл для чтения
FileOutputStream openFileOutput (String name, int mode) : открывает файл для записи
Все файлы, которые создаются и редактируются в приложении, как правило, хранятся в подкаталоге /files в каталоге приложения.
Для непосредственного чтения и записи файлов применяются также стандартные классы Java из пакета java.io.
Итак, применим функционал чтения-записи файлов в приложении. Пусть у нас будет следующая примитивная разметка layout:
Поле EditText предназначено для ввода текста, а TextView — для вывода ранее сохраненного текста. Для сохранения и восстановления текста добавлены две кнопки.
Теперь в коде Activity пропишем обработчики кнопок с сохранением и чтением файла:
При нажатии на кнопку сохранения будет создаваться поток вывода FileOutputStream fos = openFileOutput(FILE_NAME, MODE_PRIVATE)
В данном случае введенный текст будет сохраняться в файл «content.txt». При этом будет использоваться режим MODE_PRIVATE
Система позволяет создавать файлы с двумя разными режимами:
MODE_PRIVATE : файлы могут быть доступны только владельцу приложения (режим по умолчанию)
MODE_APPEND : данные могут быть добавлены в конец файла
Поэтому в данном случае если файл «content.txt» уже существует, то он будет перезаписан. Если же нам надо было дописать файл, тогда надо было бы использовать режим MODE_APPEND:
Для чтения файла применяется поток ввода FileInputStream :
Подробнее про использование потоков ввода-вывода можно прочитать в руководстве по Java: https://metanit.com/java/tutorial/6.3.php
В итоге после нажатия кнопки сохранения весь текст будет сохранен в файле /data/data/название_пакета/files/content.txt
Где физически находится созданный файл? Чтобы увидеть его на подключенном устройстве перейдем в Android Stud в меню к пункту View -> Tool Windows -> Device File Explorer
После этого откроектся окно Device File Explorer для просмотра файловой системы устройства. И в папке data/data/[название_пакета_приложения]/files мы сможем найти сохраненный файл.
Источник
Правильная работа с файлами в Android
Сегодня я бы хотел рассказать вам о правильной работе с файлами в ОС Android. Итак, чаще всего у новичков возникают ситуации, когда обычные Java функции не могут корректно создать тот или иной файл в системе Android.
Во-первых, вам нужно обратить внимание на интересную особенность ОС:
когда вы устанавливаете apk приложение в эмулятор или телефон, система Linux (на которой базируется ядро Android) выделяет ему специальный User-ID, который является неким ключом доступа к (sandbox). То есть другие приложения в телефоне не смогут получить доступ к чтению файлов вашего приложения просто так. Кончено, всё это сделано в целях безопасности.
В общем, если вы запустите следующий код:
FileWriter f = new FileWriter(«impossible.txt»);
То этот код вызовет исключение: ‘java.io.FileNotFoundException: /impossible.txt ‘
Тогда как должен в случае отсутствия файла создать его.
Далее стоит отметить, что данное ограничение не распространяется на файлы, записываемые на SDCard. Туда можно писать любые файлы без всяких проблем, правда предварительно нужно добавить в AndroidManifest разрешение на запись:
Код файла на карту:
File fileName = null;
String sdState = android.os.Environment.getExternalStorageState();
if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) <
File sdDir = android.os.Environment.getExternalStorageDirectory();
fileName = new File(sdDir, «cache/primer.txt»);
> else <
fileName = context.getCacheDir();
>
if (!fileName.exists())
fileName.mkdirs();
try <
FileWriter f = new FileWriter(fileName);
f.write(«hello world»);
f.flush();
f.close();
> catch (Exception e) <
>
Как уже ранее было сказано мною, android приложение находится в некой песочнице, изолированной от воздействия со стороны других приложений по умолчанию. Для того, чтобы создать файл внутри этой песочницы, следует использовать функцию openFileOutput(). Хочу отметить 2 аргумента:
1. имя файла
2. режим доступа к нему со стороны чужих приложений
С первым аргументом все ясно, что касается второго, то режимов существует два: MODE_WORLD_READABLE и/или MODE_WORLD_WRITEABLE.
И ещё, чтобы записать файл можно использовать следующий код:
final String TESTSTRING = new String(«Hello Android»);
FileOutputStream fOut = openFileOutput(«samplefile.txt», MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
// записываем строку в файл
osw.write(TESTSTRING);
/* проверяем, что все действительно записалось и закрываем файл */
osw.flush();
osw.close();
Для чтения файлов используется метод openFileInput():
FileInputStream fIn = openFileInput(«samplefile.txt»);
InputStreamReader isr = new InputStreamReader(fIn);
char[] inputBuffer = new char[TESTSTRING.length()];
isr.read(inputBuffer);
String readString = new String(inputBuffer);
Для удаления используется метод deleteFile() в контексте приложения/активити. На этом я бы хотел закончить полезный пост, спасибо за внимание!
Источник
Полный список
— работаем с файлами
Работа с файлами в Android не сильно отличается от таковой в Java. В этом уроке рассмотрим, как записать/прочесть файл во внутреннюю память и на SD-карту.
Project name: P0751_Files
Build Target: Android 2.3.3
Application name: Files
Package name: ru.startandroid.develop.p0751files
Create Activity: MainActivity
Рисуем экран main.xml:
4 кнопки, смысл которых понятен по тексту на них.
В onclick обрабатываем нажатия 4-х кнопок и вызываем соответствующие методы.
writeFile – запись файла во внутреннюю память. Используется метод openFileOutput, который на вход берет имя файла и режим записи: MODE_PRIVATE – файл доступен только этому приложению, MODE_WORLD_READABLE – файл доступен для чтения всем, MODE_WORLD_WRITEABLE — файл доступен для записи всем, MODE_APPEND – файл будет дописан, а не начат заново.
readFile – чтение файла из внутренней памяти. Используем метод openFileInput, принимающий на вход имя файла. Здесь и в методе записи внутреннего файла вы можете задать только имя файла, а каталог для ваших файлов вам уже выделен.
writeFileSD – запись файла на SD. Используем метод getExternalStorageState для получения состояния SD-карты. Здесь можно посмотреть какие бывают состояния. Нам нужно MEDIA_MOUNTED – когда SD-карта вставлена и готова к работе. Далее мы получаем путь к SD-карте (метод getExternalStorageDirectory), добавляем свой каталог и имя файла, создаем каталог и пишем данные в файл.
readFileSD – чтение файла с SD. Все аналогично предыдущему методу, только файл не пишем, а читаем.
Осталось в манифест добавить разрешение на работу с файлами на SD — android.permission.WRITE_EXTERNAL_STORAGE.
Все сохраним и запустим. Видим экран с 4-мя кнопками:
Внутренняя память
Жмем кнопку Записать файл. Видим в логе:
Проверим. Идем в File Explorer (Window > Show View > Other > Android > File Explorer) и открываем там папку data/data/ru.startandroid.develop.p0751files/files и видим там наш файл file.
Возвращаемся в эмулятор. Жмем Прочесть файл и в логе видим:
Это тот текст, который мы записывали в файл.
SD карта
Теперь жмем Записать файл на SD.
Файл записан на SD: /mnt/sdcard/MyFiles/fileSD
Проверяем. Идем в FileExplorer и открываем там папку mnt/sdcard/MyFiles/ а в ней файл fileSD.
Возвращаемся в эмулятор и жмем кнопку Прочесть файл с SD. В логе видим:
Содержимое файла на SD
Этот текст мы и записывали.
mnt/sdcard — обычно этот путь ведет к содержимому SD-карты. Возможно у вас он будет другой.
В общем, при работе с файлами на SD вы используете стандартные java механизмы. А при работе с внутренним хранилищем для удобства можно использовать методы-оболочки от Activity:
openFileOutput – открыть файл на запись
openFileInput – открыть файл на чтение
И есть метод getFilesDir – возвращает объект File, соответствующий каталогу для файлов вашей программы. Используйте его, чтобы работать напрямую, без методов-оболочек.
Подробности работы в java с файловой системой я здесь описывать не буду. На нашем форуме пользователь SKR сделал отличную памятку по работе с файлами. Скорее всего, вы найдете там все что нужно.
Если у вас проверка SD-карты показывает, что карта недоступна (см. лог), то убедитесь в свойствах AVD, что у вас для SDCard указан Size или File. Если указаны, то попробуйте перезапустить AVD.
На следующем уроке:
— создаем экран с вкладками
— используем иконку в названии вкладки
— используем обработчик перехода между вкладками
Присоединяйтесь к нам в Telegram:
— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.
— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование
— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня
— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме
Источник
Как открыть файлы на Андроиде: популярные приложения
Зная, как открыть файлы на Андроиде, можно просматривать документы, архивировать и разархивировать информацию и даже запускать приложения, предназначенные для обычного компьютера.
Работать с данными гораздо удобнее, не пересылая их на ПК. Всё, что требуется для запуска – скачать соответствующие программы, широкий выбор которых можно найти в маркете Google Play.
Скачивание торрентов на смартфоне
Расширение .torrent является одним из самых популярных для передачи информации через интернет.
И для того чтобы запускать такие файлы на мобильном телефоне с ОС Android требуется скачать специальную программу.
Ассортимент мобильных приложений для работы с торрентами включает практически все варианты, которые есть и для стационарных ПК:
Рис.1. µTorrent для Android
Каждая из программ позволяет запускать одновременно несколько загрузок торрентов и указывать папку для скачивания.
При этом µTorrent отличается простотой использования, а Zona упрощает поиск фильмов, тогда как MediaGet отличается быстрым поиском не только видео, но и любые другие данные с торрент-трекеров.
Всё это делается с помощью встроенного сервиса Google.
Рис.2. Русскоязычная и англоязычная версии MediaGet
Работа с исполняемыми файлами
Для работы с исполняемыми файлами типа .exe и .jar на смартфоне требуется эмулятор – соответственно, системы Windows и программной платформы Java.
Для первого варианта можно использовать такие приложения:
Рис.3. Эмулятор Windows Boschs
Принцип действия приложений практически одинаковый – для их поиска и установки на смартфон потребуется не больше нескольких минут, а вот для работы придется скачать и установить ещё и эмулятор Windows.
Предпочтительный вариант – седьмая версия системы, обеспечивающая запуск любого исполняемого файла exe.
Файлы с расширением .jar, используемые не только в ОС Windows, но и на таких мобильных платформах как Symbian, запускаются ещё проще.
Если они представляют собой архивы, для запуска понадобится архиватор для Android.
Для запуска java-приложений можно использовать такое приложение, как Java J2ME Runner.
Упростить использование файлов .jar поможет установка виртуальной среды JRE, однако для этого понадобятся root-права.
Рис.4. Запуск игры .jar на Андроид
Тип файлов Android Package (.apk) предназначен специально для использования на смартфонах под управлением ОС Андроид, поэтому для их запуска не требуется установка никаких дополнительных программ и утилит.
Достаточно просто открыть файловый менеджер и запустить файл .apk, после чего стандартный установщик системы обеспечит установку в автоматическом режиме.
Ещё один способ работы с .apk – использование менеджера приложений, специально созданного для упрощения установки файлов.
Среди таких программ стоит отметить SlideME Mobentoo App Installer, способную самостоятельно находить файлы с подходящим расширением и в памяти устройства, и на SD-карте.
Выбрать устанавливаемое приложение можно из получившегося списка найденных apk.
Как открыть архив
Находящаяся в сети информация нередко находится в архиве. Для того чтобы, скачивая её на смартфон, получить доступ к файлам не прибегая к помощи ПК, следует установить приложение-архиватор.
Самым распространённым расширением архива является .zip, и мы рекомендуем работать с приложением Zip UnZip Tool, входящим в число самых популярных и многофункциональных.
Найти его можно в Play Market, а пользоваться не сложнее, чем обычным файловым менеджером.
С помощью таких же программ можно и самому создавать архивы прямо на телефоне или извлекать из заархивированного файла только часть данных.
Рис.5. Работа с приложением Zip UnZip Tool
Для работы с расширением .zip и другими распространёнными форматами .rar, .tar и .arj можно воспользоваться приложениями ZArchiver и RAR.
С их помощью файлы из архива можно даже редактировать с сохранением изменений – так же, как и на стационарном ПК.
Есть в списке поддерживаемых приложениями расширений и более редкие .bzip2, .gzip, .XZ, .iso, .cab, .LZH, .LZMA, .xar, .tgz и .tbz, хотя большинство из них может быть только разархивировано.
Список же создаваемых архивов немного меньше.
Рис.6. RAR для ОС Андроид
Работать с архивами, включая архивирование и разархивирование, способны практически все современные файловые менеджеры – от ES Проводника и Total Commander до AndroZip и ASTRO File Manager.
Их функциональность немного меньше по сравнению со специализированными приложениями (поддержка архивов только самых популярных форматов), однако, вполне подходит для простого просмотра данных или сжатия для уменьшения их размера.
Рис.7. Создания ZIP-архива в менеджере AndroZip
Открытие файлов Office
Трудно найти пользователя, который никогда не сталкивался с файлами, созданными в программах Word и Excel.
Для работы с ними на Андроид можно использовать приложения от компании Microsoft, выпустившей аналог своего MS Office для популярной смартфонной платформы.
Функциональность пакета практически не уступает настоящим Ворду и Экселю, но для получения полноценных версий придётся подписаться на платный пакет Office 365 (от $100 в год).
На смартфонах с операционной системой Windows Phone мобильный MS Office предоставляется бесплатно.
Рис.8. Word ля Android
Возможность открывать и файлы с расширением .doc, .docx, .xls, .xlsx, .ppt и .pptx есть и в программах QuickOffice Connect, Smart Office и Kingsoft Office.
Приложение OfficeSuite, кроме того, поддерживает ещё и работу с документами Open Office.
Рис.9. Создание диаграмм в Smart Office
Работа и редактирование pdf на Андроид
Работать с форматом можно, просто открывая файлы для чтения или же редактируя их и сохраняя.
Для обычного просмотра информации вполне достаточно воспользоваться одной из многочисленных «читалок», таких как PocketBook Reader, Foxit MobilePDF или AnDoc PDF и DjVu Reader.
Эти же приложения можно использовать и для чтения книг и документов в формате .djvu.
Только с файлами pdf работают приложения EbookDroid, SmartQ Reader и Universal Book Reader.
Некоторые из них позволяют пользователю не только открывать документы, но и оставлять закладки, и даже аннотации к прочитанному.
Рис.10. PocketBook Reader
При необходимости форматирования файла в формате .pdf следует воспользоваться одним из программных пакетов для работы с расширениями doc и xls – OfficeSuite Pro.
Приложение не только откроет нужный документ, но и позволит внести в него изменения, и сохранить.
Кроме того, информация из файла может быть распечатана прямо с телефона – для этого придётся настроить печать через Bluetooth, WiFi или USB.
Рис.11. Редактирование pdf документа в OfficeSuite Pro
Файлы html на Android
Сохраняя веб-страницы в формате html или создавая документы с этим расширением, их практически невозможно открыть на смартфоне с Андроид – как правило, система выдаёт сообщение о невозможности открыть файл.
Позволить смартфону работать с html-документом могут несколько похожих по принципу действия приложения – HTML Viewer и HTML Reader/ Viewer.
Используя их, вы легко прочитаете информацию, сохранённую из сети. А, если она сохранена в виде архива .mhtml, стоит скачать приложение Mht Viewer.
Рис.12. HTML Viewer
Последние версии браузеров UC Browser и Firefox тоже позволяют открывать файлы mhtml и html в режиме чтения.
А для редактирования этой информации её стоит открыть в редакторе (который покажет не саму сохранённую страницу, а только её код) типа QuickHTML или WebMaster’s HTML Editor Lite.
Файловый менеджер для Андроид
Упростить работу с данными помогают не только специализированные программы, открывающие и позволяющие редактировать один или несколько типов файлов.
Обеспечить доступ к информации, расположенной в памяти устройства OS Android или на установленной на нём SD-карте, позволяют и файловые менеджеры – по крайней мере, большая их часть.
Встроенные по умолчанию проводники, как правило, не обладают достаточной функциональностью, и пользователю смартфона или планшета стоит установить другой вариант (из числа бесплатных приложений в Google Play).
ES Проводник
Популярный менеджер ES Проводник обладает максимальной функциональностью для работы с файлами. А среди его преимуществ – бесплатное распространение и поддержка русского языка.
С помощью менеджера можно выполнять как стандартные действия (копирование, перемещение, удаление и переименование папок и файлов), так и дополнительные – работа с системной информацией из внутренней памяти, архивирование и разархивирование файлов без помощи специальных приложений, поддержка FTP и даже использование облачных хранилищ.
Рис.13. Файловый менеджер ES проводник
Total Commander
Менеджер Total Commander является одним из самых старых для платформы Андроид, однако постоянные обновления функциональности позволяют ему на равных конкурировать с другими аналогичными приложениями.
В менеджер встроен архиватор, root-доступ к системе (если у пользователя есть соответствующие права) и возможность предварительного просмотра изображений.
Рис.14. Популярный менеджер Total Commander
Amaze File Manager
Не менее интересным файловым менеджером, похожим по функциональности на ES Проводник, является Amaze File Manager.
Он хорош бесплатностью, работой с архивами и несколькими вкладками; пользователи на форумах отмечают приятный дизайн менеджера и простоту его использования.
Рис.15. Приложение Amaze File Manager
Другие файловые менеджеры
Ещё несколько программ работа с файлами:
- Cabinet, поддерживающий плагины и архивацию в формат .zip. Среди плюсов стоит отметить небольшой размер и удобство интерфейса. Среди минусов – небольшое зависание при работе с большими файлами;
- File Manager от компании Cheetah Mobile, тоже бесплатный и русскоязычный. Кроме стандартных функций, поддерживает использование облачных хранилищ, архивацию и потоковую передачу данных.
- Solid Explorer, условно бесплатный (свободное использование в течение первой недели) менеджер, отличающийся возможностью запуска меди прямо из папок, анализом содержимого папок и прямым подключением к сервису Яндекс.Диск;
- FX File Explorer. Приложение не имеет русского интерфейса, однако вполне заслуживает внимания благодаря поддержке плагинов, миниатюр для медиафайлов, нескольких расширений архивов и упрощённому обмену данными. Благодаря такому файловому менеджеру можно быстро передать данные с одного телефона на другой с помощью WiFi.
Рис.16. FX File Explorer
Итоги
Возможностей открыть и даже редактировать файл с любым расширением на мобильном устройстве с ОС Андроид, много.
Для этого придётся скачать одно или несколько приложений, однако в результате вы обеспечите для своего смартфона такую же функциональность, как у компьютера с Windows, Linux или MacOS.
Получив при этом главное преимущество – мобильность рабочего места, которую не обеспечит ни стационарный ПК, ни даже ноутбук.
Источник