我正在尝试创建一个利用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;
}
}
答案 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(...);