помогите разобраться что упущено при переносе старого?
package com.javarush.task.task31.task3105;
import java.io.*;
import java.nio.file.Files;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
/*
Добавление файла в архив
*/
public class Solution {
public static void main(String[] args) throws IOException {
String fileName = args[0]; // имя файла
String zipFileName = args[1]; // имя ирхива
File file = new File(fileName);
Map<String, ByteArrayOutputStream> archivedFiles = new HashMap<>();
try (ZipInputStream zipReader = new ZipInputStream(new FileInputStream(zipFileName))) {
ZipEntry zipEntry;
while ((zipEntry = zipReader.getNextEntry()) != null) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[2048];
int count = 0;
while ((count = zipReader.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, count);
}
archivedFiles.put(zipEntry.getName(), byteArrayOutputStream);
}
}
try (ZipOutputStream zipWriter = new ZipOutputStream(new FileOutputStream(zipFileName))) {
ZipEntry zipEntry = new ZipEntry("new/"+ file.getName());
zipWriter.putNextEntry(zipEntry);
Files.copy(file.toPath(), zipWriter);
for (Map.Entry<String, ByteArrayOutputStream> pair : archivedFiles.entrySet()) {
// if (pair.getKey().substring(pair.getKey().lastIndexOf("/"+1)).equals(file.getName())) continue;
zipWriter.putNextEntry(new ZipEntry(pair.getKey()));
zipWriter.write(pair.getValue().toByteArray());
}
}
}
}