2012年12月7日金曜日

[Android]アプリケーションのキャッシュに保存する

アプリで取得したデータを永続的にキャッシュしておきたい場合には、
アプリケーションのキャッシュに保存しておきましょう。

Context.openFileInput()

http://developer.android.com/reference/android/content/Context.html#openFileInput(java.lang.String)

使い方1:データ読み出し
InputStream in = context.openFileInput("saveData");

使い方2:画像読み出し

FileInputStream is = context.openFileInput(dataName);
Bitmap image = BitmapFactory.decodeStream(is);
is.close();



Context.openFileOutput()

http://developer.android.com/reference/android/content/Context.html#openFileOutput(java.lang.String, int)

使い方1:データ保存
FileOutputStream os = context.openFileOutput("saveData", Context.MODE_PRIVATE);

int DEFAULT_BUFFER_SIZE = 1024 * 4;
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int n = 0;
while (-1 != (n = in.read(buffer))) {
os.write(buffer, 0, n);
}
os.close();


使い方2:画像保存

FileOutputStream os = context.openFileOutput(dataName, Context.MODE_PRIVATE);
ret = image.compress(Bitmap.CompressFormat.PNG, 100, os);

os.cloase();


永続的でなく一時的に保存したい場合は、こちらに保存するのもアリです。
Context.getCacheDir()
http://developer.android.com/reference/android/content/Context.html#getCacheDir()

ファイル容量少なくなると、システムがファイル消してしまうので、その点のみ注意。

0 件のコメント:

コメントを投稿