Mega Code Archive

 
Categories / Android / Network
 

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;   } }