【问题标题】:Erro : java.io.IOException: Stream closed错误:java.io.IOException:流已关闭
【发布时间】:2013-01-17 07:21:05
【问题描述】:
      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)

这是错误信息,我用谷歌搜索错误信息。
我发现一些解决方案是套接字关闭问题。
但是下载大文件时出现错误。
所以我不知道如何解决这个问题。
谢谢大家。

【问题讨论】:

  • “当我下载一个像 600mb 这样的小文件时”什么。你确定你输入正确吗?

标签: java exception stream serversocket


【解决方案1】:

问题可能出在

uc.setReadTimeout(30000);//timeout set

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

【讨论】:

  • 但是我已经下载了文件。下载的大小是正确的。并且发生了错误。
  • 是的,我遇到了同样的错误并解决了我的问题,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 2019-06-09
  • 2022-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
相关资源
最近更新 更多