Как разархивировать файл так и не понял, ибо он в итоге не работает)
Делал Винраром, выбираю файл.мр3, 100Мб, добавить в архив, разбиваю по 50Мб, zip формат, в итоге получается три файла:
(файл.zip, файл.z01, файл.z02), в консоль, по невнимательности видимо, подавал последние два сначала, потом все три ессно, в итоге ни хера не работает ни так ни эдак)) На выходе файл размером 0 байт, zis.available() тоже кстати 0 байт, а вот в sis.available() байты содержит, если он не запакован в ZipInputStream. Задача в итоге решена, но как распаковать файл остаётся загадкой.
package com.javarush.task.task31.task3106;
import java.io.*;
import java.nio.file.Paths;
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 {
Set<String> strings = new TreeSet<>();
for (String s : args){
if (!s.equals(args[0])){
strings.add(s);
}
}
Vector<InputStream> vector = new Vector<>();
for(String s : strings){
InputStream is = new FileInputStream(s);
vector.add(is);
}
SequenceInputStream sis = new SequenceInputStream(Collections.enumeration(vector));
ZipInputStream zis = new ZipInputStream(sis);
FileOutputStream fos = new FileOutputStream(args[0]);
while (zis.getNextEntry() != null) {
byte[] buffer = new byte[4096];
int c = zis.read(buffer);
fos.write(buffer,0,c);
zis.closeEntry();
}
zis.close();
fos.close();
}
}