Downloads a file given URL to specified destination : Url « Network « Android






Downloads a file given URL to specified destination

 
/*
 * The MIT License
 * 
 * Copyright (c) 2010 Petar Petrov
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
//package net.vexelon.bgrates;

import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.net.URL;
import java.net.URLConnection;

import org.apache.http.util.ByteArrayBuffer;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.KeyEvent;


public class Utils {
  
  /**
   * Downloads a file given URL to specified destination
   * @param url
   * @param destFile
   * @return
   */
  //public static boolean downloadFile(Context context, String url, String destFile) {
  public static boolean downloadFile(Context context, String url, File destFile) {
    //Log.v(TAG, "@downloadFile()");
    //Log.d(TAG, "Downloading " + url);
    
    boolean ret = false;
    
    BufferedInputStream bis = null;
    FileOutputStream fos = null;
    InputStream is = null;
    
    try {
      URL myUrl = new URL(url);
      URLConnection connection = myUrl.openConnection();
      
      is = connection.getInputStream();
      bis = new BufferedInputStream(is);
      ByteArrayBuffer baf = new ByteArrayBuffer(1024);
      
      int n = 0;
      while( (n = bis.read()) != -1 )
        baf.append((byte) n);
      
      // save to internal storage
      //Log.v(TAG, "Saving downloaded file ...");
      fos = new FileOutputStream(destFile); 
        //context.openFileOutput(destFile, context.MODE_PRIVATE);
      fos.write(baf.toByteArray());
      fos.close();
      //Log.v(TAG, "File saved successfully.");
      
      ret = true;
    }
    catch(Exception e) {
      //Log.e(TAG, "Error while downloading and saving file !", e);
    }
    finally {
      try {
        if ( fos != null ) fos.close();
      } catch( IOException e ) {}
      try {
        if ( bis != null ) bis.close();
      } catch( IOException e ) {}
      try {
        if ( is != null ) is.close();
      } catch( IOException e ) {}
    }
    
    return ret;
  }

}

   
  








Related examples in the same category

1.Using Intent to open a URL
2.Process xml document from a Url
3.Suggest Url Provider
4.Showing android:autoLink property, which linkifies things like URLs and phone numbers found in the text.
5.extends ArrayAdapter to create URL history
6.Used to compress URL using the bit.ly service.
7.URL encode and decode
8.Is valid URL
9.Download from URLConnection
10.Request from an URL
11.Get Url From Img Tag
12.Returns the contents of the given URL as an array of strings
13.Read from a URL
14.Pull the raw text content of the given URL.
15.Get Video from URL
16.Gets data from URL
17.get Url Response
18.URL Encode Utils
19.get Host From Url
20.encode Url
21.decode Url
22.Convert a byte array to a URL encoded string
23.get Url content with max retries
24.get Url By Post
25.Take a base url and a {@link Map} of parameters to build a valid url