Я немного смущен. Я знаю, что пустой почтовый индекс не является законным. Но что об этом примере фрагменте коде:Закрытие ZipOutputStream
ZipOutputStream zos = null;
try
{
zos = new ZipOutputStream(new FileOutputStream("..."));
//
//..
//
}
finally
{
zos.close();
}
Если нет записей почтового индекса не были добавлены по какой-то причине (возможно, исключительная ситуация), то следующее исключение будет выброшено на попытке закрытия:
Exception in thread "main" java.util.zip.ZipException: ZIP file must have at least one entry
at java.util.zip.ZipOutputStream.finish(ZipOutputStream.java:304)
at java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:146)
at java.util.zip.ZipOutputStream.close(ZipOutputStream.java:321)
В этой ситуации Каким будет самый чистый способ закрыть поток?
Благодаря ...
Спасибо за вашу помощь, это должно быть правдой :-) –
@lucho - только что отредактировал пример, чтобы сделать его более надежным. – Anon
Это решение в порядке, но аргументация неверна: вы можете закрыть любой поток. Закрытие потока оболочки, такого как ZipOutputStream, также закроет файл FileOutputStream более низкого уровня. –