Оставил задачу на сутки. Переписал с чистого листа.... 4ый пункт ну никак не хочет проходить
package com.javarush.task.task31.task3105;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
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 {
ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(args[1]));
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(args[1]));
String filename = args[0];
File file = new File(filename);
String nameoffile = file.getName();
Map<String, byte[]> data = new HashMap<>();
ZipEntry zipEntry;
while ((zipEntry = zipInputStream.getNextEntry()) != null){
byte[] buff = new byte[(int) zipEntry.getSize()];
zipInputStream.read(buff);
if (!zipEntry.getName().equals("new/" + nameoffile))
data.put(zipEntry.getName(), buff);
}
zipInputStream.close();
zipEntry = new ZipEntry("new/" + nameoffile);
zipOutputStream.putNextEntry(zipEntry);
Files.copy(Paths.get(filename), zipOutputStream);
zipOutputStream.closeEntry();
for (Map.Entry<String, byte[]> e : data.entrySet()) {
zipEntry = new ZipEntry(e.getKey());
zipOutputStream.putNextEntry(zipEntry);
zipOutputStream.write(e.getValue());
zipOutputStream.closeEntry();
}
zipOutputStream.close();
}
}