最近業(yè)務上用到了天氣查詢接口赘来,因為輸入源僅有城市名稱瘩将,接口需要用到的是城市代碼,為了實現(xiàn)功能搪泳,以key=value形式把全部城市和代碼持久化到了本地txt文件稀轨。
這是用StringTokenizer(雖然這是一個遺棄類,但是對于小萌新來說還是挺不錯的)做的一個功能函數(shù)讀取txt中的key=value保存到map集合返回:
public Map readKeyValueTxtToMap() {
//循環(huán)直至返回map
while (true) {
final HashMap keyValueMap = new HashMap();//保存讀取數(shù)據(jù)keyValueMap
//每一個循環(huán)讀取一組key=value
while (true) {
try {
final InputStream open = this.getAssets().open(
"key_value.txt");
final byte[] readArray = new byte[open.available()];
open.read(readArray);
open.close();
final StringTokenizer allLine = new StringTokenizer(new String(readArray, "UTF-8"), "\r\n");//以"\r\n"作為key=value的分解標志
while (allLine.hasMoreTokens()) {
final StringTokenizer oneLine = new StringTokenizer(allLine.nextToken(), "=");//以"="作為分解標志
final String leftKey = oneLine.nextToken();//讀取第一個字符串key
if (!oneLine.hasMoreTokens()) {
break;
}
final String rightValue = oneLine.nextToken();//讀取第二個字符串value
hashMap.put(leftKey, rightValue);
}
return keyValueMap;
} catch (IOException e) {
e.printStackTrace();
return keyValueMap;
}
}
}
}