Как удалить файл android java

Работа с файловой системой

Чтение и сохранение файлов

Работа с настройками уровня 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:

Читайте также:  Skachat apps na android

Для чтения файла применяется поток ввода 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 мы сможем найти сохраненный файл.

Источник

Как удалить файл

Удалить файл в Java можно несколькими способами: с помощью стандартного API и с помощью сторонних библиотек. В этой статье мы рассмотрим три способа:

  • с помощью Files.delete
  • с помощью Files.deleteIfExists
  • с помощью FileUtils.deleteQuietly

Примечание 1: если вместо файла передан путь к директории, указанная директория будет удалена, если она пуста.

Примечание 2: если вместо файла указана символическая ссылка, она будет удалена, но файл не будет затронут.

Удаление файла с помощью Files.delete

Первый способ удалить файл – это воспользоваться стандартным методом Files.delete:

Стоит заметить, что метод Files.delete может генерировать исключения, поэтому его придётся завернуть в блок try-catch. Например, если указанный файл не найден, будет сгенерировано исключение NoSuchFileException .

Удаление файла с помощью Files.deleteIfExists

Следующий способ – использовать метод Files.deleteIfExists, который возвращает true или false в зависимости от того, получилось ли удалить указанный файл:

Также метод Files.deleteIfExists отличается от Files.delete тем, что не выбрасывает исключение NoSuchFileException в случае, если файл не найден.

Удаление файла с помощью FileUtils.deleteQuietly

Следующий способ – использовать библиотеку Commons IO. Для этого нужно подключить библиотеку в проект:

И воспользоваться методом FileUtils.deleteQuietly:

Этот метод не генерирует исключений в случае, если файл не найден или произошла другая ошибка при попытке удалить указанный файл.

Исходный код

Заключение

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

Источник

Полный список

— работаем с файлами

Работа с файлами в 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 для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Источник

Метод удаления файлов () в Java с примерами

Метод delete () файла java.nio.file. Файлы помогают нам удалить файл, расположенный по пути, указанному в параметре.
Этот метод не может быть атомарным по отношению к другим операциям файловой системы.

Читайте также:  Rus для андроида тем

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

Синтаксис:

Параметры: Этот метод принимает путь параметра, который является путем к файлу, который нужно удалить.

Возвращаемое значение: этот метод ничего не возвращает.

Исключение: этот метод генерирует следующие исключения:

  1. NoSuchFileException — если файл не существует (необязательное определенное исключение)
  2. DirectoryNotEmptyException — если файл является каталогом и не мог быть иначе удален, потому что каталог не пуст
  3. IOException — если ошибка ввода-вывода происходит
  4. SecurityException — В случае поставщика по умолчанию, и менеджер безопасности установлен, метод SecurityManager.checkDelete (String) вызывается, чтобы проверить, чтобы удалить доступ к файлу

Ниже программы иллюстрируют метод удаления? (Path):
Программа 1:

Источник

Удалить файл с помощью Java

Java предоставляет методы для удаления файлов с использованием программ Java. В отличие от обычных операций удаления в любой операционной системе, файлы, удаляемые с помощью java-программы, удаляются навсегда, не перемещаясь в корзину / корзину.
Ниже приведены методы, используемые для удаления файла в Java:

  1. Использование функции java.io.File.delete (): Удаляет файл или каталог, обозначенный этим абстрактным именем пути.
    Синтаксис:

// Java программа для удаления файла

public class Test

public static void main(String[] args)

File file = new File( «C:\\Users\\Mayank\\Desktop\\1.txt» );

System.out.println( «File deleted successfully» );

System.out.println( «Failed to delete the file» );

Выход:

Использование метода java.nio.file.files.deleteifexists (Path p), определенного в пакете Files. Этот метод удаляет файл, если он существует. Он также удаляет каталог, указанный в пути, только если каталог не пустой.
Синтаксис:

// Java-программа для демонстрации удаления с использованием класса Files

public class Test

public static void main(String[] args)

catch (NoSuchFileException e)

System.out.println( «No such file/directory exists» );

catch (DirectoryNotEmptyException e)

System.out.println( «Directory is not empty.» );

catch (IOException e)

System.out.println( «Invalid permissions.» );

System.out.println( «Deletion successful.» );

Выход:

Ссылка:

Эта статья предоставлена Mayank Kumar . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Источник

Оцените статью