- Файлы и директории, класс File
- Примеры создания объектов File
- Свойства и методы класса File
- Интерфейс FileFilter
- Пример использования фильтра FileFilter
- Чтение содержимого файла FileInputStream
- Запись в файл FileOutputStream
- Работа с файлами в Java: методы и конструкторы
- Конструкторы
- Методы класса File
- Работа с каталогами
- Работа с файлами
- BestProg
- Работа с файлами в Java. Класс File . Основные методы работы
- Содержание
Файлы и директории, класс File
Класс File пакета java.io используется для управления информацией о файлах и каталогах. На уровне операционной системы файлы и каталоги имеют существенные отличия, но в Java они описываются одним классом File. Каталог в Java трактуется как обычный файл, но с дополнительным свойством — списком имен файлов, который можно просмотреть с помощью метода list.
В зависимости от назначения объект File — файл или каталог, можно использовать один из конструкторов для создания объекта:
Примеры создания объектов File
Свойства и методы класса File
Для определения стандартных свойств файла в классе File имеются различные методы. Однако класс File несимметричен, т.е. методы определения свойств объекта существуют, но соответствующие функции для изменения этих свойств отсутствуют.
Функции | Описание |
---|---|
String getName() | Наименование файла или каталога. |
String getParent() | Наименование родительского каталога. |
long length() | Функция определения размера файла в байтах. |
String getAbsolutePath() | Функция определения абсолютного пути файла или каталога. |
boolean delete() | Удаления файла или каталога. |
boolean exists() | Проверка существования файла или каталога. |
boolean isDirectory() | Проверка, является ли данный объект каталогом. |
boolean isFile() | Проверка, является ли данный объект файлом. |
long lastModified() | Функция определения даты последней модификации файла. |
boolean canRead() | Проверка, можно ли читать данные из файла. |
boolean canWrite() | Проверка, можно ли записывать данные в файл. |
boolean isHidden() | Проверка, являются ли каталог или файл скрытыми. |
String[] list() | Чтение массива наименований файлов и подкаталогов. |
File[] listFiles() | Чтение массива файлов и подкаталогов. |
boolean mkdir() | Создание нового каталога. |
boolean renameTo(File dest) | Переименовывание файла или каталога. |
В следующем примере открываем файл «d:/test/MyFile.txt» (Windows) и извлекаем его характеристики:
В консоли будет отпечатана следующая информация:
Интерфейс FileFilter
Класс File включает метод, позволяющий прочитать список только определенных файлов.
В отличие от одноименного метода, но без параметра, данный метод отбирает только те файлы каталога, которые удовлетворяют определенному условию. Параметр filter предназначен для задания этого условия. При этом тип параметра FileFilter — это не класс, а интерфейс, который имеет всего один метод, возвращающий true, если файл удовлетворяет определенным условиям, и false в противном случае.
Метод listFiles будет вызывать метод accept для каждого файла в каталоге, и те, для которых accept вернет true, будут включены в результирующий список. Остальные будут проигнорированы.
Для использования FileFilter необходимо создать объект и определить в нем соответствующий метод accept.
Пример использования фильтра FileFilter
Чтение содержимого файла FileInputStream
Для чтения содержимого файла можно использовать класс FileInputStream, который является наследником класса InputStream и реализует все его методы. Конструктор класса FileInputStream :
Если файл не может быть открыт то генерируется исключение FileNotFoundException.
Пример считывания данных из файла и вывод содержимого в консоль:
Данные файла можно считать в массив байтов :
Класс FileInputStream предназначен прежде всего для работы с двоичными файлами. Его можно использовать для работы с текстовыми файлами, но все же для этой задачи больше подходят другие классы.
Пример использования FileInputStream для чтения файла свойств в кодировке UTF-8:
Файл свойств «data.properties» в кодировке UTF-8:
Запись в файл FileOutputStream
Класс FileOutputStream, является производным от класса OutputStream, поэтому наследует всю его функциональность.
Пример записи строки в файл:
Для создания объекта FileOutputStream используется конструктор, принимающий в качестве параметра путь к файлу для записи. Для записи строки ее сначала переводим в массив байт и с помощью метода write строка записывается в файл. Необязательно записывать весь массив байтов. Используя перегрузку метода write(), можно записать и одиночный байт:
Пример перезаписи содержимого из одного файла в другой:
Класс FileOutputStream предназначен прежде всего для записи двоичных файлов. Его можно использовать для работы с текстовыми файлами, но все же для этой задачи больше подходят другие классы.
Источник
Работа с файлами в Java: методы и конструкторы
К классу File в java.io обращаются для выполнения различных манипуляций над файлами и каталогами, например:
- получения новой информации;
- исключения из списка;
- смены названия;
- поиска и идентификация общих атрибутов;
- детализации содержимого в них.
Название файлов и каталогов могут иметь разные форматы на разных платформах, использование строки (String) недостаточно для того, чтобы их назвать или переименовать, именно для этого применяют класс File.
Как создаются объекты File в Java? Путем использования конструкторов. Все зависит от того, чем должен являться объект — файлом (file) или каталогом (dir):
Внимание! Имя объекта является абстрактным и абсолютным по своей природе. То есть абстрактный путь экземпляра класса File нельзя изменить.
Конструкторы
В обозначении имен файлов и каталогов помогают различные конструкторы:
- File (File parent, String child) — получим файл из соединения родительского пути и строки дочернего пути:
- File (String pathname) — увидим файл, представляющий указанное имя пути:
- File (String parent, String child) –получим экземпляр, образованный из строк родительского и дочернего путей:
- File (URI uri) – конверт из URI файла в абстрактный путь:
Методы класса File
Методы могут помочь узнать данные о файлах: размер или дату последних изменений, к какому типу относится. Также с их помощью можно удалить элемент.
Вот распространенные методы:
- boolean createNewFile(): создает новый пустой файл. Если файл не будет создан, тогда выводится false.
- boolean delete(): удаляет каталог или файл.
- boolean exists(): проверяет, существует ли указанный файл или каталог.
- boolean equals(Object obj): проверяет, совпадает ли имя пути с заданным объектом.
- String getName(): выводит название файла или каталога.
- String getParent(): выводит название каталога-родителя.
- boolean isDirectory(): передает абстрактный путь, true — если путь указывает на каталог.
- boolean isFile(): выводит true, если путь указывает на файл.
- boolean isHidden(): проверяет, скрыт файл или нет (если да — выводит true, если нет — false).
- String[] list(): генерация списка строк со всеми именами файлов в каталоге.
- File[] listFiles(): формирование массива и его возврат.
- long length(): предоставляет данные о длине файла.
- URI toURI(): будет создан URI файла.
- boolean setReadable (boolean readable, boolean ownerOnly): устанавливает, кто может читать файл. К примеру, только владелец (owner).
- boolean setReadOnly(): указывает на файл или каталог, для которых возможно только чтение.
Работа с каталогами
В каталоге могут содержаться файлы и даже другие каталоги. Когда нам необходимо узнать, с чем имеем дело, обращаемся к методу isDirectory(). Если это каталог — увидим true. Затем применяем list() для получения детального перечня того, что внутри:
Давайте попробуем придумать новое название и убрать каталог:
Работа с файлами
Применяем тот же принцип навигации, что и с каталогами:
В Java можно легко управлять файлами, добавлять их, переименовывать и так далее.
Highload нужны авторы технических текстов. Вы наш человек, если разбираетесь в разработке, знаете языки программирования и умеете просто писать о сложном!
Откликнуться на вакансию можно здесь .
Источник
BestProg
Работа с файлами в Java. Класс File . Основные методы работы
В данной теме расписаны базовые методы класса File , который есть частью системы ввода/вывода Java. Для рассмотренных методов приведены примеры с объяснениями.
Содержание
Поиск на других ресурсах:
1. Создание экземпляра класса File . Конструкторы класса
В классе File реализованы несколько конструкторов, каждый из которых позволяет формировать имя файла или каталога разными способами.
Наиболее распространенным есть конструктор, который получает строку типа String . В этой строке задается полное (абсолютное) или сокращенное (относительное) имя файла или каталога, который рассматривается (создается, определяется и т.п.).
Также существуют конструкторы, формирующие имя файла из нескольких частей.
Пример.
Результат выполнения программы
2. Метод getName() . Получить имя файла или каталога
Метод getName() возвращает имя файла или каталога, с которым связана файловая переменная. Если абсолютный путь к имени файла (каталога) содержит несколько уровней вложения, то возвращается непосредственно имя этого файла (каталога). Общая форма использования метода следующая
- name – переменная типа String , которая есть результатом выполнения метода;
- fileObj – файловый объект, связанный с файлом или каталогом.
Пример.
Результат выполнения программы
3. Метод getPath() . Получить имя файла
Метод getPath() возвращает имя файла (каталога), которое было задано в конструкторе при создании файлового объекта типа File . Общая форма использования метода следующая
- path – строка типа String , что есть именем файла (каталога), которое было задано при создании файловой переменной fileObj .
Пример.
4. Метод isAbsolute() . Определить, указан ли полный путь к файлу
Метод isAbsolute() позволяет определить, указан ли полный путь к файлу при создании файлового объекта в конструкторе класса File . Общая форма использования метода следующая
- res – результат, который равен true , если при создании файловой переменной fileObj был задан абсолютный путь.
Пример.
5. Метод getAbsolutePath() . Получить полный путь к файлу
Метод getAbsolutePath() возвращает полный путь к файлу. Общая форма использования метода следующая
- path – строка типа String , которая есть результатом;
- fileObj – файловый объект, который связан с файлом, для которого нужно определить абсолютный путь.
Пример.
Результат выполнения программы
6. Методы canRead() , canWrite() . Определение того, допускает ли файловый объект чтение и запись
Методы canRead() и canWrite() предназначены для определения того, допускает ли файловый объект чтение или запись. В случае положительного результата методы возвращают true .
Пример.
Результат работы программы
7. Метод exists() . Определение наличия файла (каталога)
Метод exists() предназначен для определения существования файла, ассоциированного с файловым объектом. Общая форма использования метода следующая
- res – результат работы метода. Если res = true , то заданный файл существует;
- fileObj – объект, который проверяется.
Пример.
8. Метод isDirectory() . Определить, связан ли файловый объект с директорием
Метод isDirectory() предназначен для определения того, есть ли файл директорием (папкой). Общая форма использования метода следующая
- res – значение типа bool . Если res=true , то файл есть директорием;
- fileObj – файловый объект, который проверяется.
Пример.
9. Метод isFile() . Определить, связан ли файловый объект с файлом
Метод isFile() возвращает true , если файловый объект связан с файлом. Общая форма использования метода следующая
- res – результат вычисления. Если файловый объект есть файлом, то res = true ;
- fileObj – файловый объект.
Пример.
10. Метод isHidden() . Определить, есть ли файловый объект скрытым
Метод isHidden() возвращает true , если файловый объект связан с файлом у которого установлен атрибут «скрытый» (hidden). Общая форма использования метода
- fileObj – файловый объект;
- res – результат работы метода. Если res = true , то файловый объект связан со скрытым файлом.
Пример.
11. Метод length() . Определить размер в байтах файла, который связан с файловым объектом
Метод length() предназначен для определения размера файла и имеет следующую общую форму
Пример.
Результат работы программы
12. Метод delete() . Удаление файла
Метод delete() используется для удаления файла. Общая форма использования метода
- fileObj – файловый объект, который связан с файлом, который нужно удалить;
- res – результат выполнения метода. Если res = true , то удаление файла состоялось успешно.
Пример.
13. Метод mkdir() . Создание папки или каталога
Метод mkdir() используется для создания папки (каталога). Общая форма использования метода следующая
- res – результат типа bool . Если каталог создан успешно, то res = true , в противном случае res = false ;
- fileObj – объект типа File , который связан с именем создаваемого каталога.
Пример. Создается каталог с именем 123 в текущем каталоге.
Результат работы программы
14. Метод mkdirs() . Создание нескольких вложенных папок
Метод mkdirs() позволяет создать несколько уровней вложений папок за один раз. В отличие от метода mkdir() , этот метод создает уровни вложения папок, которые не существуют. В методе mkdir() чтобы создать подпапку нужно, чтобы предварительно обязательно была созданная папка верхнего уровня.
Общая форма использования метода следующая:
- fileObj – файловый объект, который содержит строку с именем или именами папок, которые нужно создать;
- res – результат выполнения метода. Если последовательность папок создана успешно, то res = true .
Пример.
15. Метод renameTo(File). Переименование файла
Метод renameTo() предназначен для переименования файла. Общая форма использования метода следующая
- res – результат выполнения метода. Если файл переименован успешно, то res = true , иначе res = false ;
- f1 – файловая переменная, соответствующая файлу-источнику, который нужно переименовать;
- f2 – файловая переменная, соответствующая новому имени файла-источника f1 после его переименования.
Пример.
16. Метод getTotalSpace() . Определение объема диска
С помощью метода getTotalSpace() можно определить общий размер носителя (диска) в байтах. Метод возвращает результат типа long . Общая форма использования метода следующая
- fileObj – файловый объект, в котором определено имя диска для которого определяется размер;
- totalSpace – переменная типа long , которая есть результатом выполнения метода.
Пример.
Результат выполнения программы
17. Метод getFreeSpace() . Определить свободное место на диске
С помощью метода getFreeSpace() можно определить объем в байтах свободного места на носителе. Общая форма использования метода следующая
- fileObj – файловый объект, который содержит имя носителя, имя файла или имя папки. Если задается имя файла или папки, то определяется объем свободного места для носителя, на котором этот диск и файл размещены;
- space – переменная типа long , которая есть результатом работы метода.
Пример.
Результат выполнения программы
18. Метод getUsableSpace() . Определение полезного места на диске
С помощью метода getUsableSpace() можно определить полезный размер места на носителе (диске). Во многих случаях значение, которое возвращает данный метод равно значению, которое возвращает метод getFreeSpace() . Общая форма использования метода следующая:
- fileObj – файловый объект, который содержит имя диска или имя файла. Если для fileObj определено имя файла, то определяется объем носителя, на котором этот файл сохраняется;
- space – переменная типа long , которая есть размером полезного места на диске.
Источник