目前正在通过 Eclipse 和 JUnit 为 Android 创建一个测试框架。我要实现的最后一件事是配置文件和阅读器,以便在必要时可以使用配置文件更改各种属性。我的框架结构如下:
MainFramework (project)
Base package
Utility package
Config class
Testing (project)
examples package
Artist testing class
配置类如下:
公共类配置{
private static Config instance;
public Context context;
public static Properties prop;
public static StorefrontConfig getInstance(Context context) {
if(instance == null)
instance = new StorefrontConfig(context);
return instance;
}
protected StorefrontConfig(Context cont) {
context = cont;
AssetManager manager = context.getAssets();
try {
InputStream instream = manager.open("config");
readConfig(instream);
}
catch (Exception e) {
Log.d("cool", "Failed to create properly initialized config class");
}
}
private static void readConfig(InputStream instream) {
try {
String line = "";
BufferedReader read = new BufferedReader(new InputStreamReader(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 initialized config class");
}
}
public String getProperty (String propertyKey) {
try {
return prop.getProperty(propertyKey);
}
catch (Exception e) {
Log.d("cool", "Failed to access property");
return null;
}
}
public Context getContext () {
return context;
}
当我在代码中调用 getProperty() 方法时,它总是返回 null。但是,我不知道它最初是否无法读取和写入值或发生了什么。我所知道的是,我的程序使用硬编码值,但在使用此类并在需要的代码中通过 config.getProperty() 引用它时(我的主框架有一个由所有测试继承的 Config 类)。
任何帮助将非常感激。我唯一能想到的是Java的Properties类不能与Android一起使用?