Archiver (12) Сегодня мы подготовимся к реализации команды ZipContentCommand. Она будет заниматься получением содержимого архива. Содержимое архива - это упакованные файлы и папки, но нам было бы интересно узнать не только имена объектов архива, но и их размер до и после сжатия, степень сжатия и метод сжатия. Создадим класс FileProperties, который будет отвечать за свойства каждого файла в архиве. Свойства - это набор, состоящий из: имя файла, размер файла до и после сжатия, метод сжатия. 1. Создай класс FileProperties 2. Добавь в него приватные переменные класса: 2.1. Имя String name 2.2. Размер в байтах long size 2.3. Размер после сжатия в байтах long compressedSize 2.4. Метод сжатия int compressionMethod 3. Добавь гетеры для них 4. Добавь конструктор FileProperties(String name, long size, long compressedSize, int compressionMethod) 5. Добавь метод long getCompressionRatio(), который будет считать степень сжатия по формуле: 100 - ((compressedSize * 100) / size) 6. Перегрузи метод String toString(), чтобы он возвращал строку по шаблону: "name size Kb (compressedSize Kb) сжатие: compressionRatio%", если размер size больше нуля, иначе он должен вернуть только имя файла. Нулевой размер может быть, например, у директории. Не забудь перевести байты в килобайты, а их не столько же, сколько граммов в килограмме, и даже не столько, сколько блинов у меня на столе... Хм, похоже мне пора перекусить...

Требования: 1. В корне задачи нужно создать класс FileProperties. 2. Класс FileProperties должен содержать поля String name, long size, long compressedSize, int compressionMethod. 3. Класс FileProperties должен содержать конструктор FileProperties(String name, long size, long compressedSize, int compressionMethod). 4. Для всех полей в FileProperties должны быть созданы геттеры. 5. Класс FileProperties должен содержать публичный метод long getCompressionRatio(), который считает степень сжатия файла. 6. Метод toString у класса FileProperties должен быть реализован следуя описанию в задании.

Не проходит последний пункт валидации: Метод toString у класса FileProperties должен быть реализован следуя описанию в задании.

Метод toString(): public String toString() { Formatter f = new Formatter(); if (size > 0) { f.format("%name %size Kb (%compressedSize Kb) сжатие: %compressionRatio", name, size / 1024, compressedSize / 1024, 100 - ((compressedSize / 1024) * 100) / (size / 1024)); return f.toString(); } else{ f.format(name); return f.toString(); } }

задан 19 Янв, 04:22

heavyjax's gravatar image

heavyjax
71
одобрено: 0%

Ваш ответ будет первым!
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованный список: 1. Foo 2. Bar
  • Для того чтобы добавить разрыв строки просто добавьте два пробела.
  • основные HTML тэги, также поддерживаются

Тэги:

×5

Задан: 19 Янв, 04:22

Просмотров: 91 раз

Отредактирован: 19 Янв, 04:22