用于Android测试的Java Properties类

时间:2013-07-15 18:00:50

标签: java android eclipse

我正在尝试创建一个利用Java Properties类的Eclipse Android项目。对于项目,我在我的src目录中有一个包含键值对的配置文本文件。我还有一个配置类,它包含一个属性对象,用于初始读取配置文件以及在整个执行过程中访问各种属性。但是,在访问某些属性时我遇到了一些错误。我想看看我正在生成的属性文件,以便我可以更轻松地进行调试。我该怎么做呢?

public static Properties prop;

static {

    AssetManager assetManager = getApplicationContext().getAssets();
    InputStream instream = assetManager.open("config");
    readConfig(instream);

}

private static void readConfig(Inputstream instream) {

    try {
        String line = "";
        BufferedReader read = new BufferedReader(instream);

        while ((line = read.readLine()) != null) {
            String[] split_line = line.split("=", 2);
            prop.setProperty(split_line[0], split_line[1]);
        }

        prop.store(new FileOutputStream("config.properties"), "Default and local config files");
        read.close();
    }
    catch (Exception e) {
        Log.d("cool", "Failed to create properly initialize config class");
    }
}

public static String getProperty (String propertyKey) {

    try {
        return prop.getProperty(propertyKey);
    }
    catch (Exception e) {
        Log.d("cool", "Failed to access property");
        return null;
    }
}

1 个答案:

答案 0 :(得分:0)

我不太明白你要做什么,但如果你想从文本文件中读取一些键/值对,那么你不应该把这个文本文件放在你的src目录中,这就是资产目录是什么对于。您可以通过Uri访问assets目录中的所有文件,例如:/// android_asset / ...或者最好您可以使用此代码:

AssetManager assetManager = getAssets();
InputStream instream = assetManager.open("file.txt");

编辑:尝试像这样实现您的Config类:

public class Config
{
    private static Config instance;
    public static Config getInstance(Context context)
    {
         if(instance == null)
         {
             instance = new Config(context);
         }
         return instance;
    }

    protected Config(Context context)
    {
       AssetManager manager = context.getAssets();
       ...
    }
}

然后,您可以在代码中使用您的Config类:

Config config = Config.getInstance(getApplicationContext());
config.getProperty(...);