Jestem trochę zdezorientowany. Wiem, że pusty zip nie jest legalny. Ale co o tym przykładowym fragmencie:Zamykanie ZipOutputStream
ZipOutputStream zos = null;
try
{
zos = new ZipOutputStream(new FileOutputStream("..."));
//
//..
//
}
finally
{
zos.close();
}
Jeśli żadne wpisy na suwak został dodany z jakiegoś powodu (być wyjątkowa sytuacja), wówczas następujący wyjątek zostanie rzucony na ścisłej próbie:
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)
W tej sytuacji jaki byłby najczystszy sposób zamknięcia strumienia?
Dzięki ...
Dziękuję za twoją pomoc, to powinna być prawda :-) –
@lucho - właśnie edytowałem przykład, aby był bardziej solidny. – Anon
To rozwiązanie jest w porządku, ale rozumowanie jest niepoprawne: możesz zamknąć dowolny strumień. Zamknięcie strumienia opakowującego, takiego jak ZipOutputStream, spowoduje również zamknięcie niższego poziomu FileOutputStream. –