当前位置: 代码迷 >> Android >> android 当地存取复杂数据
  详细解决方案

android 当地存取复杂数据

热度:65   发布时间:2016-04-28 04:28:31.0
android 本地存取复杂数据

@SuppressWarnings("unchecked")

public List<Map<String, Object>> fetch(String name)?

{

List<Map<String, Object>> data = null;

? ? ? ? SharedPreferences preferences ?= getSharedPreferences("base64",Context.MODE_PRIVATE); ?

? ? ? ? String dataBase64 ? ? ? ? ? ? ?= preferences.getString(name, ""); ?

? ? ? ? if (dataBase64 != "") {

? ? ? ?byte[] base64 = Base64.decode(dataBase64.getBytes(),Base64.DEFAULT); ?

? ? ? ?ByteArrayInputStream bais = new ByteArrayInputStream(base64); ?

? ? ? ?try { ? ?

? ? ? ? ? ?ObjectInputStream bis = new ObjectInputStream(bais); ?

? ? ? ? ? ?try { ?

? ? ? ? ? ? ? ? data = (List<Map<String, Object>>) bis.readObject(); ?

? ? ? ? ? ?} catch (ClassNotFoundException e) { ?

? ? ? ? ? ? ? ?

? ? ? ? ? ?} ?

? ? ? ?} catch (StreamCorruptedException e) { ?

? ? ? ? ??

? ? ? ?} catch (IOException e) { ?

? ? ? ? ? ?

? ? ? ?} ?

? ? ? ? }

? ? ? ? return data;

? ? } ?

?

public void save(List<Map<String, Object>> data,String name)?

{ ?

? ? ? ? SharedPreferences preferences = getSharedPreferences("base64",Context.MODE_PRIVATE);?

? ? ? ? ByteArrayOutputStream baos = new ByteArrayOutputStream(); ?

? ? ? ? try { ? ?

? ? ? ? ? ? ObjectOutputStream oos = new ObjectOutputStream(baos); ? ?

? ? ? ? ? ? oos.writeObject(data);

? ? ? ? ? ? String dataBase64 ? ? ?= new String(Base64.encodeToString(baos.toByteArray(),Base64.DEFAULT)); ?

? ? ? ? ? ? Editor editor = preferences.edit(); ?

? ? ? ? ? ? editor.putString(name, dataBase64);

? ? ? ? ? ? editor.commit(); ?

? ? ? ? } catch (IOException e) { ?

? ? ? ? ? ??

? ? ? ? } ?

? ? }

  相关解决方案