package com.asp.radiorake.filehandling; import android.os.Environment; import android.util.Log; import org.apache.http.util.ByteArrayBuffer; import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; public abstract class FileHandler { private static final String TAG = "com.asp.radiorake.filehandling.FileHandler"; public static String getFile(String plsUrl, String basePath) { //String path = String.format("%s/data/com.statichiss/", basePath); //put the downloaded file here String fileName = String.format("%s%s", basePath, parseFileName(plsUrl)); File file = new File(fileName); try { URL url = new URL(plsUrl); URLConnection urlConnection = url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); // Read bytes to the Buffer until there inputStream nothing more to read(-1). ByteArrayBuffer baf = new ByteArrayBuffer(50); int current; while ((current = bufferedInputStream.read()) != -1) { baf.append((byte) current); } /* Convert the Bytes read to a String. */ FileOutputStream fos = new FileOutputStream(file); fos.write(baf.toByteArray()); fos.close(); } catch (IOException e) { Log.e(TAG, "Error occurred attempting to download: " + plsUrl, e); } return fileName; } private static String parseFileName(String plsUrl) { StringBuilder filename = new StringBuilder(); int position = plsUrl.lastIndexOf("/"); filename.append("temp_"); filename.append(plsUrl.substring(position + 1)); return filename.toString(); } public static String[] getListOfRecordings(String appName) { File recFolder = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + appName); return recFolder.list(new FilenameFilter() { public boolean accept(File file, String name) { return name.endsWith("mp3"); } }); } }