代碼複製可用
封裝方法
public class ObjectSaveUtils {
/**
* 保存對象
* @param context
* @param name
* @param obj
*/
public static void saveObject(Context context, String name, Object obj) {
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = context.openFileOutput(name, Context.MODE_PRIVATE);
oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
// fos流關閉異常
e.printStackTrace();
}
}
if (oos != null) {
try {
oos.close();
} catch (IOException e) {
// oos流關閉異常
e.printStackTrace();
}
}
}
}
/**
* 讀取對象
* @param context 上下文
* @param name KEY
* @return 返回對象,沒有對象返回空
*/
public static Object getObject(Context context, String name) {
FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = context.openFileInput(name);
ois = new ObjectInputStream(fis);
return ois.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
// fis流關閉異常
e.printStackTrace();
}
}
if (ois != null) {
try {
ois.close();
} catch (IOException e) {
// ois流關閉異常
e.printStackTrace();
}
}
}
return null;
}
}
具體使用
下面的 “object” 就是需要保存的對象數據
KEY:隨便寫,讀取的時候對應就好,多個對象保存時 KEY 不重複就好
ObjectSaveUtils.saveObject(MainActivity02.this, "KEY", object); //保存數據對象
//根據你的對象讀取
List<Exchange> ExchangeObject = (List<Exchange>) ObjectSaveUtils.getObject(MainActivity02.this, "KEY"); //讀取數據對象