Добавление файла в архив

  • 28
  • Недоступна
В метод main приходит список аргументов. Первый аргумент - полный путь к файлу fileName. Второй аргумент - путь к zip-архиву. Добавить файл (fileName) внутрь архива в директорию 'new'. Если в архиве есть файл с таким именем, то заменить его. Пример входных данных: C:/result.mp3 C:/pathToTest/test.z
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (202)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Anonymous #2489173 23 уровень
21 февраля, 12:03
Скачал готовое решение и..... таймаут. Решение не принимается ахахаха
Anonymous #2489173 23 уровень
21 февраля, 12:07
и не очень понятно, зачем вообще новый зип создавать и в него всё переносить потихоньку... почему нельзя просто добавить один файл в уже существующий зип?
tbcarus 33 уровень, Москва
16 февраля, 21:14
"Сейчас я её решу" - подумал я. Особенно-то после большой задачи на архиватор. Я и решил 2 раза. Первый раз согласен - я забил на условие не использовать файловую систему. Второй раз наткнулся на то, что валидатор не знает zipInputStream.readAllBytes(), пришлось через костыли по одному байту, но у валидатора TimeOut. Потом прочитал тут про ByteArrayOutputStream, с ним приняло - полезный класс, размер которого увеличивается при записи данных в него. Сначала из zipInputStream считываем данные в фиксированный массив byte и записываем количество считанных байт, потом этот массив с учётом количества считанных байт пихаем в объект ByteArrayOutputStream. И так, пока чтение из zipInputStream не даст -1 прочитанный байт.
Клим 24 уровень
10 февраля, 12:27
Сложность задач - в условии. Его нет:)))
Сергеев Алексей 28 уровень, Москва
1 февраля, 16:16
Просто невменяемый валидатор...
Илья 39 уровень, Санкт-Петербург
29 января, 14:11
почитав комменты понял, что стоит пропустить, так как практичного смысла не несет. Ладно можно еще смириться с тем моментом, что нельзя использовать файловую систему, ведь есть же ситуации когда заведомо известно, что файлы не большие и можно пользоваться только оперативкой. Но когда увидел, что у людей не проходят рабочие решения и требуется использовать какой-то конкретный подход для удолетворения валидатора, понял, что не хочу тратить на это время. Впереди еще не хилый стек технологий изучать. Я пас
Филипп 24 уровень
20 января, 10:44
Хех, простая задача, превратившаяся в головоломку на несколько часов поисков из-за одной мелкой ошибки: старую ZipEntry использовать нельзя,(ни переиспользовать, ни через конструктор ZipEntry(ZipEntry e)) это вызывает кучу странных ошибок. новая zip-запись должна формироваться только через: new ZipEntry(oldEntry.getName()) или подобным образом.
Алексей 41 уровень, Чебоксары
11 декабря 2020, 13:09
Задача из серии: это нельзя, то нельзя, третье нельзя, а вот это попробуйте. Фактически, условия к задаче читаются из комментариев.
Антон Full Stack Developer
25 ноября 2020, 18:21
Чтобы решить задачу потребовалось 15 минут, чтобы победить валидатор - несколько часов! С третьей попытки таки зашло🥳
Andrei Po 32 уровень
23 ноября 2020, 16:27
решить с минимумом попыток (всё таки спотыкался) помогли развёрнутые комментарии ниже от : Валентин Кудинов, 16 декабря 2019, & Валерий, 13 июня 2019. благодаря комментариям решение укладывается в 20 строк кода.
Уася 41 уровень, Замусральск Expert
19 ноября 2020, 20:21
Решил задачу сам, через запись в temp файлы, 70 строк кода. Однако, валидатор весь красненький. Скопировал решение в 50 строк из гугла, валидатор принял. Хотя, в гугле код, через сохранение файлов в Map, изящнее моего.
Vad 36 уровень Expert
25 января, 22:30
И тот код почему-то уничтожает все старые файлы в зипе... но валидатору насрать..