在第二次从URLConnection获取输入流时获取504异常。当我访问特定URL时我的系统重新启动它运行良好,但第二次访问时它会抛出错误。
注意:
Using Tomcat 6, Java, JSP
代码如下:
OutputStream outStream = null;
URLConnection uCon = null;
InputStream is = null;
try {
URL Url;
byte[] buf;
int ByteRead, ByteWritten = 0;
Url = new URL("www.sample.com/download/file.xml");
outStream = new BufferedOutputStream(new FileOutputStream("/home/temp/myfile.xml"));
uCon = Url.openConnection();
is = uCon.getInputStream();
buf = new byte[size];
while ((ByteRead = is.read(buf)) != -1) {
outStream.write(buf, 0, ByteRead);
ByteWritten += ByteRead;
}
System.out.println("Downloaded Successfully.");
is.close();
outStream.close();
} catch (Exception e) {
System.out.println("Required File is not there "+e.getMessage());
}
答案 0 :(得分:3)
读完流后,您已阅读了该流。您不能多次重新读取流,而不调用mark()
和reset()
方法,并且您正在使用的InputStream
类的实现应首先实际支持此方法。
除此之外:
Exception
,而是 - IOException
,URLException
或其他任何相关的(如果你的话,你的IDE会为你推荐/解决这个问题)删除catch (Exception e)
块。finally
块,用于检查流是否为空并关闭它们。答案 1 :(得分:0)
也许您没有以正确的方式关闭输入流或输出流。 始终使用
finally {
is.close();
outputStream.close()
}