В общем решал вот так:
public class Solution {
public static void writeZipEntriesToFile(String zipFileName, String outputFileName) {
Charset charset = StandardCharsets.UTF_8;
Path outputFilePath = Paths.get(outputFileName);
//BufferedWriter writer = null;
//ZipFile zip = null;
try(
BufferedWriter writer=Files.newBufferedWriter(outputFilePath, charset);
ZipFile zip=new ZipFile(zipFileName);
){
String newLine = System.getProperty("line.separator");
for (Enumeration entries = zip.entries(); entries.hasMoreElements(); ) {
// Берем имя файла из архива и записываем его в результирующий файл
// Get the entry name and write it to the output file
String zipEntryName = ((ZipEntry) entries.nextElement()).getName() + newLine;
writer.write(zipEntryName, 0, zipEntryName.length());
}
}catch (IOException e){
e.printStackTrace();
}
/*try {
zip = new ZipFile(zipFileName);
writer = Files.newBufferedWriter(outputFilePath, charset);
String newLine = System.getProperty("line.separator");
for (Enumeration entries = zip.entries(); entries.hasMoreElements(); ) {
// Берем имя файла из архива и записываем его в результирующий файл
// Get the entry name and write it to the output file
String zipEntryName = ((ZipEntry) entries.nextElement()).getName() + newLine;
writer.write(zipEntryName, 0, zipEntryName.length());
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (zip != null) {
try {
zip.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}*/
}
public static void main(String[] args) {
}
}
пока не удалил блок,закоменченный(выделил жирным) Валя писала: в методе не должно быть блока final;
Удалил и все пошло.
framzik
41 уровень
Поправьте Валю!
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сергей Замятин
27 марта 2019, 05:12
Та же фигня. Почему нужно обязательно удалять?
0
Артур Харатян
31 января 2020, 17:31
я имплементил класс от AutoCloseable , соответственно добавился переопределенный метод close(), который и выполняет функцию в блоке finally, поэтому его надо удалить, он тупо лишний. как то так...
0