Core Class Android

package net.javalib.flickr.search.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
/**
 * Utility class used to deal with SD card cache.
 */
public class CacheUtil {
  /** Cache root */
  private static File root;
  
  private CacheUtil() {}
  
  static {
    root = Environment.getExternalStorageDirectory();
    root = new File(root,"FlickrSearch/cache");
  }
  
  public static File file(String cacheKey) {
    return new File(root,cacheKey);
  }
  
  public static void deleteCache() {
    deleteDir(root);
  }
  
  public static void deleteDir(File dir) {
    if (!dir.isDirectory())
      return;
    File[] files = dir.listFiles();
    for (File file : files) {
      if (file.isDirectory())
        deleteDir(file);
      else {
        file.delete();
      }
    }
  }
  
  public static boolean exists(String cacheKey) {
    return file(cacheKey).exists();
  }
  
  public static Bitmap getBitmap(String cacheKey) {
    if (!exists(cacheKey))
      return null;
    File file = file(cacheKey);
    InputStream in = null;
    try {
      in = new FileInputStream(file);
      return BitmapFactory.decodeStream(in);
    } catch (Exception e) {
      return null;
    } finally {
      if (in != null) try { in.close(); } catch (Exception e) {}
    }
  }
  
}