在我的应用中,我在“资产”(“ src / main / assets”)文件夹中手动创建了一个属性文件(“ MyConfig.properties”)。该文件只有一个条目,即 DeviceUuid = xyzabc ,现在我想将此值更新为 DeviceUuid = pqrstabc ,为此,我在下面的代码中写了---
public static void setProperty(String key, String value, Context context)
{
try
{
Properties properties = new Properties();
OutputStream output = new FileOutputStream("MyConfig.properties");
// set the properties value
properties.setProperty(key, value);
// save properties to project root folder
properties.store(output, null);
output.close();
}
catch (Exception ex)
{
Log.e(TAG, "Unable to WRITE Property "+key);
Log.e(TAG, ""+ex);
}
}
但我总是会遇到例外情况-
java.io.FileNotFoundException: MyConfig.properties (Read-only file system)
我对此做了一些RND,并尝试了谷歌上其他可用的解决方案,但没有一个对我有用。
我已经编写了以下代码,以从同一属性文件中读取值,并且它工作正常---
public static String getProperty(String key, Context context)
{
try
{
Properties properties = new Properties();;
AssetManager assetManager = context.getAssets();
InputStream inputStream = assetManager.open("MyConfig.properties");
properties.load(inputStream);
return properties.getProperty(key);
}
catch (Exception ex)
{
Log.e(TAG, "Unable to READ Property "+key);
Log.e(TAG, ""+ex);
return null;
}
}
请告知我是否可以提供更多详细信息。谢谢
答案 0 :(得分:0)
new FileOutputStream("MyConfig.properties");
指向无效的位置。您需要提供一个指向internal storage,external storage或也许removable storage的File
对象。