
- •1Лабораторная работа №1 Работа с архивами формата zip
- •1.1 Задание на лабораторную работу
- •1.2 Краткие теоретические сведения
- •1.2.1Компонент jFileChooser
- •1.2.2Обработка содержимого Zip (gzip) архива
- •1.2.2.1Класс ZipFile
- •1.2.2.2Класс ZipEntry
- •1.3 Порядок выполнения работы
- •1.4 Содержимое отчета
- •1.5 Контрольные вопросы
1Лабораторная работа №1 Работа с архивами формата zip
Цель работы: Изучить механизм работы с архивами формата ZIP в Java.
1.1 Задание на лабораторную работу
В ходе выполнения данной лабораторной работы необходимо реализовать приложение позволяющее просматривать содержимое zip(gzip)-архивов с информацией о находящихся в них файлах.
Содержимое архива отобразить с учетом директорий, используя класс JTree, а детальную информацию о каждом элементе с использованием класса JList. Для каждого элемента архива вывести подробную информацию в зависимости от типа элемента:
для файлов изображений (*.jpg) – отобразить изображение;
для файлов *.xml, *.txt– содержимое файла, размер и дату модификации;
для прочих файлов – размер и дату модификации.
1.2 Краткие теоретические сведения
1.2.1Компонент jFileChooser
При работе с файлами из приложения возникает необходимость рано или поздно использовать диалог для выбора файлов. JFileChooser (рисунок 1.1) из библиотеки Java Swing как раз является таким диалогом. Диалог JFileChooser позволяет производить навигацию по файловой системе, предоставляет возможность выбора файла или директории и больше ничего с ними не делает. Работать с данным компонентом просто и легко. Ниже приводиться небольшой пример поясняющий, что необходимо сделать, чтобы показать JFileChooser и получить информацию о том, какой выбор сделал пользователь.
Рисунок 1.1 – Компонент JFileChooser
Для того, чтобы показать диалог достаточно написать две строчки:
JFileChooser fileopen = new JFileChooser();
int ret = fileopen.showDialog(null, "Открыть файл");
С помощью первой строчки создается новый объект JFileChooser, а при помощи второй строчки отображается диалог пользователю. Как только пользователь закрывает диалог, то в переменную ret заносится определенное значение. С помощью этого значения можно понять, что собственно произошло с JFileChooser: пользователь нажал отмену, или просто закрыл диалог или же открыл выбранный файл.
Во фрагменте, представленном ниже, рассматривается случай, когда пользователь в диалоге JFileChooser выбрал файл и открыл его. При помощи метода getSelectedFile можно получить ссылку на объект File и затем продолжить с ним работать.
JFileChooser fileopen = new JFileChooser();
int ret = fileopen.showDialog(null, "Открыть файл");
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fileopen.getSelectedFile();
/*
* Какие-то действия.
*/
}
Поле APPROVE_OPTION содержит значение, указывающее на то, что пользователем была нажата кнопка yes или ok .
Приведенный пример показывает, каким образом осуществляется работа с компонентом JFileChooser: открытие диалога и отображение его пользователю; обработка действий пользователя; получение интересующей информации о выбранном файле.
1.2.2Обработка содержимого Zip (gzip) архива
Среди различных библиотек классов Java есть библиотека с названием java.util.zip. Она позволяет работать с архивами файлов широко распространенных форматов ZIP и GZIP.
Применяя соответствующие классы из этой библиотеки можно разрабатывать приложения, способные создавать архивы, просматривать их содержимое, извлекать из архивов отдельные или все файлы.
Рассмотрим способы извлечения отдельных файлов из ZIP-архива и получения подробной информации о них.
Чтобы получить доступ к таким файлам, нужно создать объект класса ZipFile, пользуясь одним из конструкторов этого класса. Первый конструктор позволяет открыть ZIP-файл через объект класса File, а второй – через полный путь к имени файла:
try
{
zf = new ZipFile(zipFilePath);
. . .
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
В процессе создания объекта класса ZipFile могут возникать как обычные для файлов исключения IOException, так и исключения класса ZipException, специфические для класса ZipFile.