Не могу найти ошибку.. Не хочу решать, как в правильном решении)
package com.javarush.task.task31.task3106;
import java.io.*;
import java.io.FileOutputStream;
import java.nio.file.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
/*
Разархивируем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
File result = new File(args[0]);
if (!result.exists()){
result.createNewFile();
}
List<String> stringList = new ArrayList<>();
stringList.addAll(Arrays.asList(args).subList(1, args.length));
Collections.sort(stringList);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
for (String s: stringList) {
try (FileInputStream fis = new FileInputStream(s)) {
while (fis.available() > 0) {
byte [] buffer = new byte[1024];
for (int i; (i = fis.read(buffer, 0, 1024)) > -1 ;) {
baos.write(buffer);
}
}
}
}
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ZipInputStream zis = new ZipInputStream(bais);
ZipEntry zipEntry;
FileOutputStream fos = new FileOutputStream(result);
while ((zipEntry = zis.getNextEntry()) != null){
byte [] buffer = new byte[1024];
for (int i; (i = zis.read(buffer, 0, 1024)) > -1 ;) {
System.out.println("111");
fos.write(buffer, 0, i);
fos.flush();
}
}
bais.close();
zis.close();
fos.close();
}
}