android开发中常到的配置文件处理方式总结:
1.j2se方式:
.properties文件的读取:
public static Properties getNetConfigProperties() { Properties props = new Properties(); InputStream in = Utils.class.getResourceAsStream("/netconfig.properties"); try { props.load(in); } catch (IOException e) { e.printStackTrace(); } return props; }
使用时: Properties.getProperty("key")
自定义配置文件:
写入:private static void writeConfiguration(Context context, LocaleConfiguration configuration) { DataOutputStream out = null; try { out = new DataOutputStream(context.openFileOutput(PREFERENCES, MODE_PRIVATE)); out.writeUTF(configuration.locale); out.writeInt(configuration.mcc); out.writeInt(configuration.mnc); out.flush(); } catch (FileNotFoundException e) { // Ignore } catch (IOException e) { // noinspection ResultOfMethodCallIgnored context.getFileStreamPath(PREFERENCES).delete(); } finally { if (out != null) { try { out.close(); } catch (IOException e) { // Ignore } } } }
读取:private static void readConfiguration(Context context, LocaleConfiguration configuration) { DataInputStream in = null; try { in = new DataInputStream(context.openFileInput(PREFERENCES)); configuration.locale = in.readUTF(); configuration.mcc = in.readInt(); configuration.mnc = in.readInt(); } catch (FileNotFoundException e) { // Ignore } catch (IOException e) { // Ignore } finally { if (in != null) { try { in.close(); } catch (IOException e) { // Ignore } } } }
private static class LocaleConfiguration { public String locale; public int mcc = -1; public int mnc = -1; }
private static final String PREFERENCES = "launcher.preferences";
2.SharedPreferences:
public class SharedPreferencesHelper { SharedPreferences sp; SharedPreferences.Editor editor; Context context; public SharedPreferencesHelper(Context c,String name){ context = c; sp = context.getSharedPreferences(name, 0); editor = sp.edit(); } public void putValue(String key, String value){ editor = sp.edit(); editor.putString(key, value); editor.commit(); } public String getValue(String key){ return sp.getString(key, null); } }