package com.finchframework.finch.rest; import android.net.Uri; import org.apache.http.HttpResponse; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; /** * Writes data from urls into a local file cache that can be referenced by a * database ID. */ public class FileHandler implements ResponseHandler { private String mId; private File mCacheDir; public FileHandler(File cacheDir, String id) { mCacheDir = cacheDir; mId = id; } public File getFile(String ID) { return new File(mCacheDir, ID); } public void handleResponse(HttpResponse response, Uri uri) throws IOException { InputStream urlStream = response.getEntity().getContent(); FileOutputStream fout = new FileOutputStream(getFile(mId)); byte[] bytes = new byte[256]; int r; do { r = urlStream.read(bytes); if (r >= 0) { fout.write(bytes, 0, r); } } while (r >= 0); urlStream.close(); fout.close(); } }