如何复制sharedpreferences
到外部存储保持xml format
,以便以后可以共享首选项。
试图读取sharedpreferences
并另存为一个string
文件,创建了JSON
类型string
,但是我需要一个xml
。想过遍历应用程序的内部存储和复制文件,然后将其放入外部存储,但这可能太复杂了。
真的很想知道是否存在一种简单而明智的方法来传递`sharedpreferences。
使用此代码,
SharedPreferences preferences=this.getSharedPreferences("com.example.application", Context.MODE_PRIVATE);
Map<String,?> keys = preferences.getAll();
Properties properties = new Properties();
for(Map.Entry<String,?> entry : keys.entrySet()){
String key = entry.getKey();
String value = entry.getValue().toString();
properties.setProperty(key, value);
}
try {
File file = new File("externalPreferences.xml");
FileOutputStream fileOut = new FileOutputStream(file);
properties.storeToXML(fileOut, "External Preferences");
fileOut.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
并取回使用它,
try {
File file = new File("externalPreferences.xml");
FileInputStream fileInput = new FileInputStream(file);
Properties properties = new Properties();
properties.loadFromXML(fileInput);
fileInput.close();
Enumeration enuKeys = properties.keys();
SharedPreferences.Editor editor = preferences.edit();
while (enuKeys.hasMoreElements()) {
String key = (String) enuKeys.nextElement();
String value = properties.getProperty(key);
editor.putString(key, value);
editor.commit();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
注意使用此代码只能处理字符串类型首选项,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句