1

構成ファイルからアプリケーションを初期化したい。Androidで読み取り専用ファイルを作成する最良の方法は何ですか? Asset Folder が read-only であることは知っています。これが私の設定マネージャーです

構成マネージャー

public class ConfigManager {
    private static final String CONFIG_FILE         = "config";
    private static final String KEY_VALUE_SEPERATOR = "=";

    public static String loadConfig(Context context, String key) {
        List<String> lines = FileManager.readFromFile(context, CONFIG_FILE);
        Map<String, String> allConfig = parseLines(lines);
        return allConfig.get(key);
    }
    //For Writable Config File
    public static boolean saveConfig(Context context, Config config) {
        List<String> lines = new ArrayList<String>();
        lines.add(config.key + KEY_VALUE_SEPERATOR + config.value);
        return FileManager.writeToFile(context, CONFIG_FILE, lines);
    }

    private static Map<String, String> parseLines(List<String> lines) {
        Map<String, String> out = new HashMap<String, String>();
        for(String line : lines) {
            Config config = parseKeyAndValueFromLine(line);
            out.put(config.key, config.value);
        }
        return out;
    }

    private static Config parseKeyAndValueFromLine(String line) {
        Config out = new Config();
        int seperatorIdx = line.indexOf(KEY_VALUE_SEPERATOR);
        if(-1 == seperatorIdx) return out;
        String key = line.substring(0, seperatorIdx);
        out.key = key.trim();
        String value = line.substring(seperatorIdx + 1);
        out.value = value.trim();
        return out;
    }
}
4

1 に答える 1

3

assets ディレクトリにプロパティ ファイルを作成します。たとえば、app.properties。コードでは、次のようにアクセスします。

try {
    InputStream inputStream = assetManager.open("app.properties");
    Properties properties = new Properties();
    properties.load(inputStream);
    System.out.println("The properties are now loaded");
    System.out.println("properties: " + properties);
} catch (IOException e) {
    e.printStackTrace();
}
于 2013-10-10T19:23:57.680 に答える