在android中以编程方式从网上下载文件的最佳方法是什么?

时间:2011-02-04 09:34:08

标签: android download

在我的应用程序中从Web下载大量文件时,它们大约是200Mb文件(Zipped)。所以任何人都可以告诉我下载文件的最佳方式。实际上我关心的是代码的性能。如果可能的话,请给我一个想法或一些代码下载。如何处理中间的错误和网络问题。

感谢你, SRINIVAS

2 个答案:

答案 0 :(得分:16)

以下是我最近为此撰写的一些代码:

    try {
      URL u = new URL("http://your.url/file.zip");
      InputStream is = u.openStream();

      DataInputStream dis = new DataInputStream(is);

      byte[] buffer = new byte[1024];
      int length;

      FileOutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/" + "file.zip"));
      while ((length = dis.read(buffer))>0) {
        fos.write(buffer, 0, length);
      }

    } catch (MalformedURLException mue) {
      Log.e("SYNC getUpdate", "malformed url error", mue);
    } catch (IOException ioe) {
      Log.e("SYNC getUpdate", "io error", ioe);
    } catch (SecurityException se) {
      Log.e("SYNC getUpdate", "security error", se);
    }

这会下载文件并将其放在您的SD卡上。

您可以修改它以满足您的需求。 :)

答案 1 :(得分:2)

我想指出Android 2.3(API Level 9)引入了一个名为DownloadManager的新系统服务。如果你只支持2.3,那么你一定要使用它。如果没有,您可以:

  1. 检查DownloadManager是否可用,如果可用则使用它。如果不是(Android< 2.3),请自行下载文件,例如xil3所描述的。
  2. 如果您认为工作太多,请不要使用DownloadManager。但是,我坚信你会受益于它的使用。