正文  电脑教程 > 服务器教程 >

Android如何将文件下载到指定目录的实现教程

废话不多说了额,直接给大家贴代码了,具体代码如下所示: /** * 下载指定路径的文件,并写入到指定的位置 * * @par...

废话不多说了额,直接给大家贴代码了,具体代码如下所示:

/**
   * 下载指定路径的文件,并写入到指定的位置
   *
   * @param dirName
   * @param fileName
   * @param urlStr
   * @return 返回0表示下载成功,返回1表示下载出错
   */
  public int downloadFile(String dirName, String fileName, String urlStr) {
    OutputStream output = null;
    try {
      //将字符串形式的path,转换成一个url
      URL url = new URL(urlStr);
      //得到url之后,将要开始连接网络,以为是连接网络的具体代码
      //首先,实例化一个HTTP连接对象conn
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      //定义请求方式为GET,其中GET的大小写不要搞错了。
      conn.setRequestMethod("GET");
      //定义请求时间,在ANDROID中最好是不好超过10秒。否则将被系统回收。
      conn.setConnectTimeout(6 * 1000);
      //请求成功之后,服务器会返回一个响应码。如果是GET方式请求,服务器返回的响应码是200,post请求服务器返回的响应码是206(貌似)。
      if (conn.getResponseCode() == 200) {
        //返回码为真
        //从服务器传递过来数据,是一个输入的动作。定义一个输入流,获取从服务器返回的数据
        InputStream input = conn.getInputStream();
        File file = createFile(dirName + fileName);
        output = new FileOutputStream(file);
        //读取大文件
        byte[] buffer = new byte[1024];
        //记录读取内容
        int n = input.read(buffer);
          //写入文件
          output.write(buffer, 0, n);
          n = input.read(buffer);
        }
        output.flush();
         input.close();
      }
    } catch (MalformedURLException e) {
      e.printStackTrace();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        output.close();
        System.out.println("success");
        return 0;
      } catch (IOException e) {
        System.out.println("fail");
        e.printStackTrace();
      }
    }
    return 1;
  }
  /**
   * 在SD卡的指定目录上创建文件
   *
   * @param fileName
   */
  public File createFile(String fileName) {
    File file = new File(fileName);
    try {
      file.createNewFile();
    } catch (IOException e) {
      e.printStackTrace();
    }
    return file;
  }