使用场景:一般情况下如果需要读入外部的数据库内容中的数据,需要把相关的数据库文件放在assets目录下
读取方式:
/**
* 读取文本数据
*
* @param context 程序上下文
* @param fileName 文件名
* @return String, 读取到的文本内容,失败返回null
*/
public static String readAssets(Context context, String fileName) {
InputStream is = null;
String content = null;
try {
is = context.getAssets().open(fileName);
if (is != null) {
byte[] buffer = new byte[1024];
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
while (true) {
int readLength = is.read(buffer);
if (readLength == -1)
break;
arrayOutputStream.write(buffer, 0, readLength);
}
is.close();
arrayOutputStream.close();
content = new String(arrayOutputStream.toByteArray());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
content = null;
} finally {
try {
if (is != null)
is.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
return content;
}
解析方法:读取完成以后需要解析相关的String字符串
/**
* 解析本地text文件
*
* @param context
*/
SchoolAddressschoolAddress =new SchoolAddress();
private void initJSONObject(Context context) {
if (schoolAddress == null) {
try {
String areaStr = FileUtil.readAssets(context, "文件名.txt");
schoolAddress = GsonUtil.GsonToBean(areaStr, SchoolAddress.class);
} catch (Exception e) {
schoolAddress = null;
}
}
}
Gson工具类
public class GsonUtil { private static GsonBuilder gson = null; static { if (gson == null) { gson = new GsonBuilder(); gson.disableHtmlEscaping(); } } private GsonUtil() { } /** * 转成json * * @param * @return */ public static <T> String mapToJson(Map<String, T> map) { String gsonString = null; if (gson.create() != null) { gsonString = gson.create().toJson(map); } gsonString = gsonString.replace("\\\\", "");//对斜线的转义 return gsonString; } /** * 转成json * * @param object * @return */ public static String GsonString(Object object) { String gsonString = null; if (gson.create() != null) { gsonString = gson.create().toJson(object); } gsonString = gsonString.replace("\\\\", "");//对斜线的转义 return gsonString; } /** * 转成bean * * @param gsonString * @param cls * @return */ public static <T> T GsonToBean(String gsonString, Class<T> cls) { T t = null; if (gson.create() != null) { t = gson.create().fromJson(gsonString, cls); } return t; } /** * 转成list * * @param gsonString * @param cls * @return */ public static <T> List<T> GsonToList(String gsonString, Class<T> cls) { List<T> list = null; if (gson.create() != null) { list = gson.create().fromJson(gsonString, new TypeToken<List<T>>() { }.getType()); } return list; } /** * 转成list中有map的 * * @param gsonString * @return */ public static <T> List<Map<String, T>> GsonToListMaps(String gsonString) { List<Map<String, T>> list = null; if (gson.create() != null) { list = gson.create().fromJson(gsonString, new TypeToken<List<Map<String, T>>>() { }.getType()); } return list; } /** * 转成map的 * * @param gsonString * @return */ public static <T> Map<String, T> GsonToMaps(String gsonString) { Map<String, T> map = null; if (gson.create() != null) { map = gson.create().fromJson(gsonString, new TypeToken<Map<String, T>>() { }.getType()); } return map; } }