2013年7月7日日曜日

JAVAのプリミティブ型の配列はシリアライズ可能

JAVAの基本型(プリミティブ、intやcharなど小文字で始まる変数の型)は配列にすることでラッパ型になり、シリアライズがインプリメントをされます

パーミッションは不要です。

以下、シリアライズ保存の例

public void set(String fileName,int[] data) {
try {
FileOutputStream fos = cn.openFileOutput(fileName,
cn.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(data);
oos.close();
} catch (Exception e) {
Log.d(TAG, "setError");
}
}

public int[] get(String fileName) {
try {
FileInputStream fis = cn.openFileInput(fileName);
ObjectInputStream ois = new ObjectInputStream(fis);
int[] data = (int[]) ois.readObject();
ois.close();
return data;
} catch (Exception e) {
Log.d(TAG, "getError");
}
return null;
}


以下のようなプリファレンスだけでは配列を保存できません。その場合は上記を使用できます。

   private void save()
   {
//プリファレンスに保存
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
Editor e = sp.edit();
e.putBoolean("Boolean1", true);
e.commit();
   }
   private void load(){
   SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
    sp.getBoolean("Boolean1", false));

   }

0 件のコメント:

コメントを投稿