Все четыре пункта выполнены и очередная задача превращается в угадайку.
Не понимаю я разработчиков JavaRush - если вы хотите увидеть что-то конкретное в работающем(!) коде, напишите это в требованиях.
package com.javarush.task.task31.task3106;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
import java.util.zip.ZipInputStream;
/*
Разархивируем файл
*/
public class Solution {
public static void main(String[] args) throws Exception {
if (args.length<2){
return;
}
Path resultFile = Paths.get( args[0] );
List<FileInputStream> zipParts = new ArrayList();
for (int i = 1; i < args.length; i++)
zipParts.add( new FileInputStream( args[i] ) );
Vector v = new Vector();
for (int i = 0; i < zipParts.size(); i++) {
v.add( zipParts.get( i ) );
}
Enumeration<FileInputStream> enumeration = v.elements();
try (SequenceInputStream sequenceInputStream = new SequenceInputStream( enumeration );
ZipInputStream zipInputStream = new ZipInputStream( sequenceInputStream )) {
Path parent = resultFile.getParent();
if (Files.notExists( parent ))
Files.createDirectories( parent );
try (FileOutputStream fileOutputStream = new FileOutputStream( resultFile.toFile() )) {
zipInputStream.getNextEntry();
copyData( zipInputStream, fileOutputStream );
}
}
}
public static void copyData(InputStream in, OutputStream out) throws Exception {
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = in.read( buffer )) > 0) {
out.write( buffer, 0, len );
}
}
}