android+内存缓存和文件缓存,在内存中的Android缓存属性文件,以避免I/O

我有一个属性文件存储在资产文件夹的Android项目。我需要在每次需要值时避免该文件的I/O读取,以便第一次加载文件并将其保存在静态字段中。请记住,这是一款在嵌入式平板电脑上“始终运行”的应用程序,因此基本上没有生命周期。这是我对本作的实现:在内存中的Android缓存属性文件,以避免I/O

Properties.java:

private static java.util.Properties properties;

private static Context mContext;

public static void init(Context context) {

mContext = context.getApplicationContext();

if(properties == null){

AssetManager assetManager = context.getAssets();

InputStreamReader reader = null;

try {

reader = new InputStreamReader(assetManager.open("path_to_prop_file"), "UTF-8");

properties = new java.util.Properties();

properties.load(reader);

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

reader.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

public static String get(String entry){

try {

return properties.getProperty(entry);

} catch (Exception e){

init(mContext);

return properties.getProperty(entry);

}

}

然后我把它从活动:

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Properties.init(getApplicationContext());

String property = Properties.get("prop_key");

}

我是缓存也语境的情况下,属性文件需要被重新加载。我可以将上下文作为参数传递给“Get”方法,但是我需要在应用程序中随处读取属性,并且我不想通过所有类传递上下文。 我想知道如果这个实现是好的,并且在我的情况下关于上下文的泄漏是危险的。 任何建议被理解

EDIT 1:最后块中追加关闭读者所建议

2016-11-14

Nem3sis

+0

考虑关闭你的阅读器在finally块 –

+0

@NicolasFilotto当然我会感谢 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值