Android中(java)讀取以key=value形式儲存在txt等文字檔案的資料
阿新 • • 發佈:2019-02-20
最近業務上用到了天氣查詢介面,因為輸入源僅有城市名稱,介面需要用到的是城市程式碼,為了實現功能,以key=value形式把全部城市和程式碼持久化到了本地txt檔案。
這是用StringTokenizer(雖然這是一個遺棄類,但是對於小萌新來說還是挺不錯的)做的一個功能函式讀取txt中的key=value儲存到map集合返回:
public Map readKeyValueTxtToMap() {
//迴圈直至返回map
while (true) {
final HashMap keyValueMap = new HashMap();//儲存讀取資料keyValueMap
//每一個迴圈讀取一組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;
}
}
}
}