Mega Code Archive

 
Categories / Android / File
 

Move a file stored in the cache to the internal storage of the specified context

/*  * 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 {      /**    * Move a file stored in the cache to the internal storage of the specified context    * @param context    * @param cacheFile    * @param internalStorageName    */   public static boolean moveCacheFile(Context context, File cacheFile, String internalStorageName) {          boolean ret = false;     FileInputStream fis = null;     FileOutputStream fos = null;          try {       fis = new FileInputStream(cacheFile);              ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);       byte[] buffer = new byte[1024];       int read = -1;       while( (read = fis.read(buffer) ) != -1 ) {         baos.write(buffer, 0, read);       }       baos.close();       fis.close();       fos = context.openFileOutput(internalStorageName, Context.MODE_PRIVATE);       baos.writeTo(fos);       fos.close();              // delete cache       cacheFile.delete();              ret = true;     }     catch(Exception e) {       //Log.e(TAG, "Error saving previous rates!");     }     finally {       try { if ( fis != null ) fis.close(); } catch (IOException e) { }       try { if ( fos != null ) fos.close(); } catch (IOException e) { }     }          return ret;   }    }