Валидатор пишет "Убедись, что содержимое всех файлов в архиве осталось прежним." Я проверил на нескольких файлах, все файлы остаются какими были. Помогите!
package com.javarush.task.task31.task3105;
import java.io.*;
import java.nio.file.Files;
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 {
Map<String, byte[]> map = new HashMap<>();
FileInputStream inzip = new FileInputStream(args[1]);
ZipInputStream inputZip = new ZipInputStream(inzip);
String fileName = Paths.get(args[0]).getFileName().toString();
while (inzip.available()>0) {
ZipEntry entry = inputZip.getNextEntry();
if (entry!=null && !entry.getName().equals("new/" + fileName)) {
byte[] data = new byte[80000];
int len = inputZip.read(data);
byte[] newdata = Arrays.copyOf(data, len-1);
map.put(entry.getName(), newdata);
}
inputZip.closeEntry();
}
inputZip.close();
FileOutputStream outzip = new FileOutputStream(args[1]);
ZipOutputStream outputZip = new ZipOutputStream(outzip);
for (Map.Entry<String, byte[]> entry: map.entrySet()) {
outputZip.putNextEntry(new ZipEntry(entry.getKey()));
outputZip.write(entry.getValue());
outputZip.closeEntry();
}
outputZip.putNextEntry(new ZipEntry("new/" + fileName));
Files.copy(Paths.get(args[0]), outputZip);
outputZip.close();
}
}