日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android文件读取工具类,Android 下读取Assets Properties操作封装工具类

發(fā)布時(shí)間:2024/9/27 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android文件读取工具类,Android 下读取Assets Properties操作封装工具类 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Android 下讀取Assets Properties操作封裝工具類(lèi)

發(fā)布時(shí)間:2018-06-03作者:laosun閱讀(2081)

為了方便使用,首先創(chuàng)建BaseApplication類(lèi),如下所示:import?android.app.Application;

import?android.content.Context;

/**

*?Created?by?sun?on?2018/5/28.

*/

public?class?BaseApplication?extends?Application?{

private?static?Context?mContext;

@Override

public?void?onCreate()?{

super.onCreate();

mContext?=?getApplicationContext();

}

public?static?Context?getInstance()?{

return?mContext;

}

}

創(chuàng)建Prop工具類(lèi)

import?com.sunjs.application.BaseApplication;

import?com.sunjs.log.LOG;

import?java.io.IOException;

import?java.io.InputStream;

import?java.io.InputStreamReader;

import?java.util.Properties;

public?class?Prop?{

private?Properties?properties?=?null;

public?Prop(String?fileName,?String?encoding)?{

InputStream?inputStream?=?null;

try?{

inputStream?=?BaseApplication.getInstance().getAssets().open(fileName);

if?(inputStream?==?null)?{

LOG.e(Thread.currentThread().getStackTrace()[1].getClassName(),?"Properties?file?not?found?in?classpath:?"?+?fileName);

}

properties?=?new?Properties();

properties.load(new?InputStreamReader(inputStream,?encoding));

}?catch?(IOException?e)?{

LOG.e(Thread.currentThread().getStackTrace()[1].getClassName(),e,"Error?loading?properties?file.");

}?finally?{

if?(inputStream?!=?null)?try?{

inputStream.close();

}?catch?(IOException?e)?{

LOG.e(Thread.currentThread().getStackTrace()[1].getClassName(),e,?e.getMessage());

}

}

}

private?ClassLoader?getClassLoader()?{

ClassLoader?ret?=?Thread.currentThread().getContextClassLoader();

return?ret?!=?null???ret?:?getClass().getClassLoader();

}

public?String?get(String?key)?{

return?properties.getProperty(key);

}

public?String?get(String?key,?String?defaultValue)?{

return?properties.getProperty(key,?defaultValue);

}

public?Integer?getInt(String?key)?{

return?getInt(key,?null);

}

public?Integer?getInt(String?key,?Integer?defaultValue)?{

String?value?=?properties.getProperty(key);

if?(value?!=?null)?{

return?Integer.parseInt(value.trim());

}

return?defaultValue;

}

public?Long?getLong(String?key)?{

return?getLong(key,?null);

}

public?Long?getLong(String?key,?Long?defaultValue)?{

String?value?=?properties.getProperty(key);

if?(value?!=?null)?{

return?Long.parseLong(value.trim());

}

return?defaultValue;

}

public?Boolean?getBoolean(String?key)?{

return?getBoolean(key,?null);

}

public?Boolean?getBoolean(String?key,?Boolean?defaultValue)?{

String?value?=?properties.getProperty(key);

if?(value?!=?null)?{

value?=?value.toLowerCase().trim();

if?("true".equals(value))?{

return?true;

}?else?if?("false".equals(value))?{

return?false;

}

throw?new?RuntimeException("The?value?can?not?parse?to?Boolean?:?"?+?value);

}

return?defaultValue;

}

public?boolean?containsKey(String?key)?{

return?properties.containsKey(key);

}

public?Properties?getProperties()?{

return?properties;

}

}

創(chuàng)建讀取操作類(lèi)

import?java.util.concurrent.ConcurrentHashMap;

/**

*?Created?by?sun?on?2018/5/28.

*/

public?class?PropKit?{

private?static?Prop?prop?=?null;

private?static?final?ConcurrentHashMap?map?=?new?ConcurrentHashMap();

private?PropKit()?{

}

public?static?Prop?use(String?fileName)?{

return?use(fileName,?Const.DEFAULT_ENCODING);

}

private?static?Prop?use(String?fileName,?String?encoding)?{

Prop?result?=?map.get(fileName);

if?(result?==?null)?{

//服務(wù)端并發(fā)時(shí)使用,這塊其實(shí)不用使用

synchronized?(PropKit.class)?{

result?=?map.get(fileName);

if?(result?==?null)?{

result?=?new?Prop(fileName,?encoding);

map.put(fileName,?result);

if?(PropKit.prop?==?null)?{

PropKit.prop?=?result;

}

}

}

}

return?result;

}

public?static?void?clear()?{

prop?=?null;

map.clear();

}

public?static?Prop?getProp()?{

if?(prop?==?null)?{

//默認(rèn)加載config.properties文件

//這里的Const.default_config就是assets目錄下的config.properties

use(Const.default_config);

}

return?prop;

}

public?static?Prop?getProp(String?fileName)?{

return?map.get(fileName);

}

public?static?String?get(String?key)?{

return?getProp().get(key);

}

public?static?String?get(String?key,?String?defaultValue)?{

return?getProp().get(key,?defaultValue);

}

public?static?Integer?getInt(String?key)?{

return?getProp().getInt(key);

}

public?static?Integer?getInt(String?key,?Integer?defaultValue)?{

return?getProp().getInt(key,?defaultValue);

}

public?static?Long?getLong(String?key)?{

return?getProp().getLong(key);

}

public?static?Long?getLong(String?key,?Long?defaultValue)?{

return?getProp().getLong(key,?defaultValue);

}

public?static?Boolean?getBoolean(String?key)?{

return?getProp().getBoolean(key);

}

public?static?Boolean?getBoolean(String?key,?Boolean?defaultValue)?{

return?getProp().getBoolean(key,?defaultValue);

}

public?static?boolean?containsKey(String?key)?{

return?getProp().containsKey(key);

}

}

測(cè)試:

assets下有config.properties

內(nèi)容如下:

login.url=

dev.mode=true

使用獲取方式如下:

String?loginUrl?=?PropKit.use("config.properties").get("login.url");

boolean?devMode?=?PropKit.getBoolean("dev.mode");

從上邊可以看出,.use是填寫(xiě)的assets根目錄下的properties文件名稱(chēng),代碼中默認(rèn)的文件名叫做config.properties,所以也可以不用寫(xiě).use,可以直接進(jìn)行獲取。

0 +1

版權(quán)聲明

發(fā)表評(píng)論

請(qǐng)文明留言

發(fā)表

共 0 條評(píng)論

總結(jié)

以上是生活随笔為你收集整理的android文件读取工具类,Android 下读取Assets Properties操作封装工具类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。