Добрый день!
Что не так?
Не принимает ни по одному пункту, по факту всё работает
package com.javarush.task.task31.task3106;
import java.io.*;
import java.nio.file.*;
import java.util.*;
import java.util.zip.*;
/*
Разархивируем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
Path tempZipFile = Files.createTempFile("temp-","-zip");
ZipInputStream zip = new ZipInputStream(new FileInputStream(tempZipFile.toString()));
ArrayList<Path> filePartList = new ArrayList<>();
// Заполняем filePartList путями к частям архива и сортируем по имени
for (int i = 1; i < args.length; i++) {
filePartList.add(Paths.get(args[i]));
}
Collections.sort(filePartList);
// Пишем все части архива в один временный файл
try(FileOutputStream fos = new FileOutputStream(tempZipFile.toString())) {
for (Path path : filePartList) {
byte[] partContent = Files.readAllBytes(path);
fos.write(partContent);
}
fos.flush();
}
ZipEntry file;
String fileName;
long fileSize;
while ((file = zip.getNextEntry()) != null) {
fileName = file.getName();
fileSize = file.getSize();
try(FileOutputStream fos = new FileOutputStream(args[0])) {
for (int c = zip.read(); c != -1; c = zip.read()) {
fos.write(c);
}
fos.flush();
}
zip.closeEntry();
}
}
}
у тебя tempZipFile пустой. ты его подаешь в поток на чтение. zip.getNextEntry будет всегда null.если у тебя будет частей больше, чем 9, то файлы отсортируются неправильно. ибо они будут сортироваться, как строки.