美文网首页程序员
Android中(java)读取以key=value形式保存在t

Android中(java)读取以key=value形式保存在t

作者: xuanyonghao | 来源:发表于2017-03-06 17:38 被阅读0次

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

        本文链接:https://www.haomeiwen.com/subject/qkyugttx.html