| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
 

Оглавление

Работа с файлами
Классы потоков
Стандартные потоки
Потоки и файлы
Запись и чтение потоков
Закрывание потоков
Сброс буферов
Потоки в памяти
Stream Tokenizer
String Tokenizer
Класс File
Произвольный доступ
Приложение StreamToken
Приложение DirectFile

    Работа с файлами и каталогами при помощи класса File

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

    Создание объекта класса File

    У вас есть три возможности создать объект класса File, вызвав для этого один из трех конструкторов:

    public File(String path);
    public File(File dir, String name);
    public File(String path, String name);

    Первый из этих конструкторов имеет единственный параметр - ссылку на строку пути к файлу или каталогу. С помощью второго конструктора вы можете указать отдельно каталог dir и имя файла, для которого создается объект в текущем каталоге. И, наконец, третий конструктор позволяет указать полный путь к каталогу и имя файла.

    Если первому из перечисленных конструкторов передать ссылку со значением null, возникнет исключение NullPointerException.

    Пользоваться конструкторам очень просто. Вот, например, как создать объект класса File для файла c:\autoexec.bat и каталога d:\winnt:

    f1 = new File("c:\\autoexec.bat");
    f2 = new File("d:\\winnt");

    Определение атрибутов файлов и каталогов

    После того как вы создали объект класса File, нетрудно определить атрибуты этого объекта, воспользовавшись соответствующими методами класса File.

    Проверка существования файла или каталога

    С помощью метода exists вы можете проверить существование файла или катлога, для которого был создан объект класса File:

    public boolean exists();

    Этот метод можно применять перед созданием потока на базе класса FileOutputStream, если вам нужно избежать случайной перезаписи существующего файла. В этом случае перед созданием выходного потока класса FileOutputStream следует создать объект класса File, указав конструктору путь к файлу, а затем проверить сущестование файла методом exists.

    Проверка возможности чтения и записи

    Методы canRead и canWrite позволяют проверить возможность чтения из файла и записи в файл, соответственно:

    public boolean canRead();
    public boolean canWrite();

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

    Определение типа объекта - файл или каталог

    С помощью методов isDirectory и isFile вы можете проверить, чему соответствует созданный объект класса File - каталогу или файлу:

    public boolean isDirectory();
    public boolean isFile();

    Получение имени файла или каталога

    Метод getName возвращает имя файла или каталога для заданного объекта класса File (имя выделяется из пути):

    public String getName();

    Получение абсолютного пути к каталогу

    Метод getAbsolutePath возвращает абсолютный путь к файлу или каталогу, который может быть машинно-зависимым:

    public String getAbsolutePath();

    Определение типа указанного пути - абсолютный или относительный

    С помощью метода isAbsolute вы можете определить, соответствует ли данный объект класса File файлу или каталогу, заданному абсолютным (полным) путем, либо относительным путем:

    public boolean isAbsolute();

    Определение пути к файлу или каталогу

    Метод getPath позволяет определить машинно-независимый путь файла или каталога:

    public String getPath();

    Определение родительского каталога

    Если вам нужно определить родительский каталог для объекта класса File, то это можно сделать методом getParent:

    public String getParent();

    Определение длины файла в байтах

    Длину файла в байтах можно определить с помощью метода length:

    public long length();

    Определение времени последней модификации файла или каталога

    Для определения времени последней модификации файла или каталога вы можете вызвать метод lastModified:

    public long lastModified();

    Заметим, однако, что этот метод возвращает время в относительных единицах с момента запуска системы, поэтому его удобно использовать только для относительных сравнений.

    Получение текстового представления объекта

    Метод toString возвращает текстовую строку, представляющую объект класса File:

    public String toString();

    Получение значения хэш-кода

    Метод hashCode возвращает значение хэш-кода, соответствующего объекту File:

    public int hashCode();

    Удаление файлов и каталогов

    Для удаления ненужного файла или каталога вы должны создать соответствующий объект File и затем вызвать метод delete:

    public boolean delete();

    Создание каталогов

    С помощью методов mkdir и mkdirs можно создавать новые каталоги:

    public boolean mkdir();
    public boolean mkdirs();

    Первый из этих методов создает один каталог, второй - все подкаталоги, ведущие к создаваемому каталогу (то есть полный путь).

    Переименование файлов и каталогов

    Для переименования файла или каталога вы должны создать два объекта класса File, один из которых соответствует старому имени, а второй - новому. Затем для перовго из этих объектов нужно вызвать метод renameTo, указав ему в качестве параметра ссылку на второй объект:

    public boolean renameTo(File dest);

    В случае успеха метод возвращает значение true, при возникновении ошибки - false. Может также возникать исключение SecurityException.

    Сравнение объектов класса File

    Для сравнения объектов класса File вы должны использовать метод equals:

    public boolean equals(Object obj);

    Заметим, что этот метод сравнивает пути к файлам и каталогам, но не сами файли или каталоги.

    Получение списка содержимого каталога

    С помощью метода list вы можете получить список содержимого каталога, соответствующего данному объекту класса File. В классе File предусмотрено два варианта этого метода - без параметра и с параметром:

    public String[] list();
    public String[] list(FilenameFilter filter);

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



Java | Продукты и решения | Технологии | Сервис и обучение
О компании | Партнеры | Новости | Поиск
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content
Используются технологии uCoz

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz