Android中(java)读取以key=value形式保存在txt等文本文件的数据

最近业务上用到了天气查询接口,因为输入源仅有城市名称,接口需要用到的是城市代码,为了实现功能,以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;
                   }
             }
      }
}

你可能感兴趣的:(Android中(java)读取以key=value形式保存在txt等文本文件的数据)