android download file and save to sdCard

方法一:   

public void DownloadFromUrl(String DownloadUrl, String fileName) {


           try {
                   File root = android.os.Environment.getExternalStorageDirectory();               

                   File dir = new File (root.getAbsolutePath() + "/xmls");
                   if(dir.exists()==false) {
                        dir.mkdirs();
                   }

                   URL url = new URL(DownloadUrl); //you can write here any link
                   File file = new File(dir, fileName);

                   long startTime = System.currentTimeMillis();
                   Log.d("DownloadManager", "download begining");
                   Log.d("DownloadManager", "download url:" + url);
                   Log.d("DownloadManager", "downloaded file name:" + fileName);

                   /* Open a connection to that URL. */
                   URLConnection ucon = url.openConnection();

                   /*
                    * Define InputStreams to read from the URLConnection.
                    */
                   InputStream is = ucon.getInputStream();
                   BufferedInputStream bis = new BufferedInputStream(is);

                   /*
                    * Read bytes to the Buffer until there is nothing more to read(-1).
                    */
                   ByteArrayBuffer baf = new ByteArrayBuffer(5000);
                   int current = 0;
                   while ((current = bis.read()) != -1) {
                      baf.append((byte) current);
                   }


                   /* Convert the Bytes read to a String. */
                   FileOutputStream fos = new FileOutputStream(file);
                   fos.write(baf.toByteArray());
                   fos.flush();
                   fos.close();
                   Log.d("DownloadManager", "download ready in" + ((System.currentTimeMillis() - startTime) / 1000) + " sec");

           } catch (IOException e) {
               e.printStackTrace();
               Log.d("DownloadManager", "Error: " + e);
           }

        }


方法二:

    protected void download() {
        File root = Environment.getExternalStorageDirectory();
        File file = new File(root, "myPDF" + ".pdf");
        String content = null;
        try {
            if (root.canWrite()) {

                String[] paramterNames = new String[1];
                String[] paramterValues = new String[1];
                paramterNames[0] = "respFormat";
                paramterValues[0] = "pdf";
                URL url = new URL(uri);

                try {

                    // Read the PDF from the URL and save to
                    // a local file
                    BufferedInputStream bis = new BufferedInputStream(
                            url.openStream());
                    BufferedOutputStream bos = new BufferedOutputStream(
                            new FileOutputStream(file));
                    byte[] buff = new byte[2048];
                    int bytesRead;
                    // Simple read/write loop.
                    while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
                        bos.write(buff, 0, bytesRead);
                    }
                    bos.flush();
                    bos.close();
                    bis.close();

                } catch (NullPointerException npe) {
                    System.out.println("FAILED.\n[" + npe.getMessage() + "]\n");
                }

            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值