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;
                   }
             }
      }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容