Sto provando a scaricare un file zip, ma ricevo un Stream Closed Exception. Quando uso l'oscillazione gui, ottengo questo errore, ma se uso la console non ci sono problemi. Perché ottengo questa eccezione? Come posso ripararlo?perché ottengo java.io.IOException: flusso chiuso?
Questo è il mio codice:
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
FileOutputStream out = new FileOutputStream(destination.getPath());
byte[] b = new byte[1024];
int count;
while ((count = in.read(b)) >= 0) {
out.write(b, 0, count);
}
out.flush();
out.close();
in.close();
OptionPane.showMessageDialog(null, "Download is finished");
} catch (HttpUnauthorizedException e) {
JOptionPane.showMessageDialog(null, "Proxy or Server Authentication Required");
} catch (IOException e) {
System.out.println(e.getMessage());
}
questo è traccia dello stack
java.io.IOException: Stream closed.
at java.net.PlainSocketImpl.available(PlainSocketImpl.java:428)
at java.net.SocketInputStream.available(SocketInputStream.java:217)
at java.io.BufferedInputStream.read(BufferedInputStream.java:321)
at weblogic.net.http.KeepAliveStream.read(KeepAliveStream.java:86)
at java.io.FilterInputStream.read(FilterInputStream.java:90)
at be.azvub.ext.bcfidownloder.Download.downloadZipFile(Download.java:130)
at be.azvub.ext.bcfidownloder.Download.authorize(Download.java:91)
at be.azvub.ext.bcfidownloder.BcfiDownloadPanel$4.mouseClicked(BcfiDownloadPanel.java:110)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:212)
at java.awt.Component.processMouseEvent(Component.java:5520)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3129)
at java.awt.Component.processEvent(Component.java:5282)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3984)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3901)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1791)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at be.azvub.webutil.gui.WebEventQueue.dispatchEvent(WebEventQueue.java:34)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
* Dove * si ottiene l'eccezione? –
stack trace please –
I get here: 'while ((count = in.read (b))> = 0) { out.write (b, 0, count); } ' – itro