【问题标题】:File downloading returns IOException with Android 2.3文件下载返回 IOException 与 Android 2.3
【发布时间】:2012-01-08 10:54:09
【问题描述】:

我有一个下载和读取文本文件的代码,但它在 Android 2.3 中返回 IOException。它适用于其他版本。

同样问题的重复是here,但这些提示都没有帮助,我目前正在this page 尝试这个技巧。我的代码中还有自定义的 DoneHandlerInputStream 类。

代码:

URL url = new URL(URLstr);
URLConnection connection = url.openConnection(); 

BufferedReader rd;

InputStream stream = connection.getInputStream();
stream = new DoneHandlerInputStream(stream);
rd = new BufferedReader(new InputStreamReader(stream));

StringBuffer sb = new StringBuffer();
String line;
while ((line = rd.readLine()) != null){
    sb.append(line);
}
rd.close();

String resultedString = sb.toString();

【问题讨论】:

  • 能贴一下异常的stacktrace吗?
  • java.io.IOException:流意外结束。不知道那是不是你想知道的。
  • 该死。我只是注意到这个问题有两个原因。这确实修复了另一个问题,但不知何故,我在我的应用程序中使用的“exists(URLstr)”在 Android 2.3 中总是导致错误,并且我的应用程序最终下载了不存在的文件。

标签: android download ioexception android-2.3-gingerbread


【解决方案1】:
have u try this?

while((line = rd.readLine()) != null)
{
    sb.append(line);
    if (!rd.ready()) {
       break;
    }
}
rd.close();

【讨论】:

  • 其实我已经解决了我的问题。这确实对我有用,但它的结果是 IOException,因为它试图下载一个不存在的文件。我的应用程序下载了许多文件,当应用程序尝试检查哪些文件存在时,结果总是错误的,这搞砸了我的应用程序。
  • 与我在这里实际遇到的烂摊子相比,这甚至都不好笑。我最初甚至没有使用 BufferedReader。我有DataInputStream,它根本没有这个问题,但是当我在Android 2.3中得到IOException时,我将DataInputStream更改为BufferedReader,因为这里有一个“解决方案”。除了另一个 IOException,这给我带来了包含 ä 和 ö 的文本文件的问题,并且还导致我在解决问题时走错了路。失败!不幸的是,exists() 和 BufferedReader 在 Android 2.3 上都有问题。
猜你喜欢
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-02
  • 2012-12-18
相关资源
最近更新 更多