Еще и в начале цикла while ((entry = zis.getNextEntry()) != null) { - почем то равно null, а результирующий файл 0 кБ
и еще вопрос, при добавлении в 7zip архив и его разбиении файл делится на архив с песней, показывает что там полный вес этой песни и файлы с расширением 002,003,004 и т.д. т.е. под 001 он понимает как раз зип архив с песней, но не пишет об этом нигде, или тогда почему начинаются файлы с 002
![]()
![]()


package com.javarush.task.task31.task3106;
import java.io.*;
import java.util.*;
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 {
File fileResult = new File(args[0]);
ArrayList<String> listStr = new ArrayList<>();
for (int i = 1; i < args.length; i++) {
listStr.add(args[i]);
}
Collections.sort(listStr);
Vector<InputStream> listStreams = new Vector<>(listStr.size());
for (String e : listStr) {
listStreams.add(new FileInputStream(e));
}
ZipInputStream zis = new ZipInputStream(new SequenceInputStream(Collections.enumeration(listStreams)));
OutputStream fos = new BufferedOutputStream(new FileOutputStream(fileResult));
ZipEntry entry;
byte[] buffer = new byte[2048];
while ((entry = zis.getNextEntry()) != null) {
int data;
while((data = zis.read()) != -1) {
fos.write(zis.read(buffer, 0, data));
fos.flush();
}
zis.closeEntry();
}
zis.close();
fos.close();
}
public static ArrayList<InputStream> getListOfStreams(TreeMap<Integer, String> treeMap, String[] args) throws IOException {
ArrayList<InputStream> streamArrayList = new ArrayList<>(args.length);
for (int i = 1; i < treeMap.size(); i++) {
try (InputStream inputStream = new FileInputStream(treeMap.get(i))) {
streamArrayList.add(inputStream);
}
}
return streamArrayList;
}
}