Erro : java.io.IOException: Stream closed


      try{
        URLPath = "xxxxx";
        URL url = new URL(URLPath);
        uc = (HttpURLConnection) url.openConnection();
        uc.setReadTimeout(30000);//timeout set
        uc.connect();// connect

        fos = new FileOutputStream(savePath);
        InputStream in = uc.getInputStream();
        byte[] buffer = new byte[1024];
        int Length = 0;
        long FinishedLenth = 0;
        while((Length = in.read(buffer)) > 0) {
            FinishedLenth = FinishedLenth + Length;
            fos.write(buffer, 0, Length);
        }
        in.close();
        uc.disconnect();
        fos.close();
      }

这是我的下载代码。当我下载600mb的小文件时,我遇到了问题
并且没有错误发生。
但是我下载了2G的文件大小,错误发生了。

java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.FilterInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(Unknown Source)
at Download_File.downloadFile(Download_File.java:66)
at downloadFileFunctionThread.run(downloadFileFunctionThread.java:116)

这是一个错误消息,我谷歌的错误消息。
我找到了解决socket关闭问题的方法。
但是下载大文件时出现错误。
所以我不知道如何解决这个问题。
谢谢所有。

问题可能出在

uc.setReadTimeout(30000);//timeout set

对于较大的文件,您的连接可能会超时,请设置一个大于下载文件所需持续时间的值,或者不要指定。

相关内容

  • 没有找到相关文章

最新更新