В чем проблема? Четвертый пункт не проходит.
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
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 HashMap<ZipEntry, ByteArrayOutputStream> hashMap = new HashMap<>();
    public static void main(String[] args) throws IOException {
        ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(args[1]));


        while (true){
            ZipEntry temp = zipInputStream.getNextEntry();
            if(temp==null)break;

            if(temp.getName().equals("new/" + Paths.get(args[0]).getFileName()))continue;

            if(!temp.isDirectory()) {
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
                byte[] buffer = new byte[8 * 1024];
                int len;
                while ((len = zipInputStream.read(buffer)) > 0) {
                    byteArrayOutputStream.write(buffer, 0, len);
                }
                hashMap.put(temp,byteArrayOutputStream);
                byteArrayOutputStream.close();
            }else hashMap.put(temp,null);

        }
        zipInputStream.close();

        ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(args[1]));
        zos.putNextEntry(new ZipEntry("new/" + Paths.get(args[0]).getFileName()));
        Files.copy(Paths.get(args[0]),zos);
        zos.closeEntry();

        for (Map.Entry<ZipEntry,ByteArrayOutputStream> pair:hashMap.entrySet()) {
            zos.putNextEntry(pair.getKey());
            if(!pair.getKey().isDirectory()){
                zos.write(pair.getValue().toByteArray());
               zos.flush();
            }


        }
        zos.close();







    }
}