Приклад показує, як за допомогою класу File можна отримати різну інформацію про фото - повний шлях, розмір, доступність для запису, читання і так далі.
трохи теорії
За допомогою класу File ви можете виконувати такі операції, як визначення атрибутів файлу, створення або видалення каталогів, видалення файлів, отримання списку всіх файлів в каталозі і так далі.
У класі File передбачені три конструктора:
Перший з них має єдиний параметр - посилання на рядок шляху до файлу або каталогу. За допомогою другого конструктора ви можете вказати окремо каталог dir і ім'я файлу, для якого створюється об'єкт в поточному каталозі. І, нарешті, третій конструктор дозволяє вказати повний шлях до каталогу і ім'я файлу.
Після того як ви створили об'єкт класу File, неважко визначити атрибути цього об'єкта, скориставшись відповідними методами класу File.
За допомогою методу exists ви можете перевірити існування файлу або каталогу, для якого був створений об'єкт класу File:
Методи canRead і canWrite дозволяють перевірити можливість читання з файлу і запису в файл, відповідно:
Їх корисно застосовувати перед створенням відповідних потоків, якщо потрібно уникнути виникнення виключень, пов'язаних зі спробою виконання доступу недозволеного типу. Якщо доступ дозволений, ці методи повертають значення true, а якщо заборонений - false.
За допомогою методів isDirectory і isFile ви можете перевірити, чому відповідає створений об'єкт класу File - каталогу або файлу:
Метод getName повертає ім'я файлу або каталогу для заданого об'єкта класу File (ім'я виділяється з шляху):
Метод getAbsolutePath повертає абсолютний шлях до файлу або каталогу, який може бути машинно-залежним:
Метод getPath дозволяє визначити машинно-незалежний шлях файлу або каталогу:
Якщо вам потрібно визначити батьківський каталог для об'єкта класу File, то це можна зробити методом getParent:
Довжину файлу в байтах можна визначити за допомогою методу length:
опис прикладу
Автономне додаток FileInfo показує в своєму вікні інформацію про файлах, отриману засобами класу File (рис. 1).
Як працює програма?
Якщо вибрати в меню File рядок Open, на екрані з'явиться стандартна діалогова панель вибору вхідного файлу з назвою Select File.
Вона буде створена і відображена методом actionPerformed, який отримує управління при виборі рядків меню нашого застосування:
Якщо користувач відмовився від вибору файлу, метод повертає управління, не роблячи ніяких дій:
У тому випадку якщо файл був обраний, метод actionPerformed створює для нього об'єкт класу File:
При цьому він передає конструктору класу File через перший параметр шлях до каталогу, який містить файл, а через другий - ім'я файлу.
Всі подальші дії виконуються тільки після перевірки існування зазначеного файлу, яка виконується методом exist:
Перш за все ми додаємо туди абсолютний шлях до файлу, отриманий методом getAbsolutePath, канонізований шлях до файлу, певний методом getCanonicalPath і машинно-незалежний шлях, який представляє даний об'єкт (отриманий методом getPath):
У нашому прикладі (рис. 1) ці шляхи співпадають, однак такий збіг виходить не завжди. Зокрема, канонічний шлях може залежати від платформи, на якій виконується додаток.
Далі наша програма визначає ім'я файлу (методом getName), ім'я каталогу, де цей файл розташований (методом getParent), і довжину файлу в байтах (методом length):
Далі ми перевіряємо, чи дозволяється читання файлу:
Аналогічна перевірка виконується і для запису: