public class Solution {
    public static void main(String[] args) throws IOException {

// Создаю мапу для временного хранения архива (пробовал вторым аргуметом byte[]) тоже всё работает, но валик не принимает
        Map<ZipEntry, ByteArrayOutputStream> map = new HashMap<>();
        String inputZip = args[1]; // инициализирую входные имена
        String addedFile = args[0];

// Получаю имя файла, который надо добавить
        String addedFileName = Paths.get(addedFile).getFileName().toString();
        String newAddedFileName = "new/" + addedFileName; // Получаю его новое имя
        ZipEntry zipEntry;


// Открываю поток для чтения архива
        ZipInputStream zis = new ZipInputStream(new FileInputStream(inputZip));

 // Читаю его пока поток не кончится
        while ((zipEntry = zis.getNextEntry()) != null) {

// Если новый файл уже есть в архиве - пропускаю его
                if (!zipEntry.getName().endsWith(addedFileName)) {

 // Создаю поток для временного хранения прочитанных байтов
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    int length = 0;
                    byte[] buffer = new byte[1024];
                    while ((length = zis.read(buffer)) != -1) { // Заполняю поток байтами
                        baos.write(buffer, 0, length);
                    }
                    map.put(zipEntry, baos);
                }
        }
        zis.close(); // Закрываю поток для чтения архива

// Открываю поток для записи архива
        ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(inputZip));
        Path newFile = Paths.get(addedFile); // Создаю Path для нового файла

// Помещаю в архив этот новый файл и подготавливаю zos для записи в этот файл
        zos.putNextEntry(new ZipEntry(newAddedFileName));
        Files.copy(newFile, zos);  // Записываю в zos новый файл

// Записываю в архив его старые файлы
        for (Map.Entry<ZipEntry, ByteArrayOutputStream> pair : map.entrySet()) {
            zos.putNextEntry(pair.getKey());
            pair.getValue().writeTo(zos);
        }

        zos.close(); // Закрываю поток для записи архива
    }
}
Ну и что я делаю не так? Прошу помочь разобраться