public static void read() {

		new Thread(new Runnable() {

			@Override
			public void run() {
				try {

					// 省份链接
					String privicenUrl = Config.PROVINCE_URL;
					ArrayList<PersonModel> listCache = new ArrayList<PersonModel>();
					int time = 0;
					// 循环34个省
					for (int i = 1; i < 35; i++) {

						// 间隔1-10S ,再去请求，防止400错误
						time = (int) (Math.random() * 9000) + 5000;
						String requestUrl = privicenUrl + i + "&cachetime=" + System.currentTimeMillis();
						System.out.println(i + " : " + requestUrl);
						String content = HttpUtil.sendGet(requestUrl);
						PersonListModel listModel = new Gson().fromJson(content, PersonListModel.class);
						System.out.println(listModel.data.get(0).region + " : " + listModel.data.size());
						for (PersonModel model : listModel.data) {
							// 这里是第一次加，不会有重复的
							hashMap.put(model.innerno, model);
						}

						Thread.sleep(time);
						// 没请求10次，强制休息10S
						if (i % 10 == 0) {
							Thread.sleep(10000);
						}
					}
					// 请求完省份，休息10S
					Thread.sleep(10000);

					// 称号URL ，这个能弥补部分没有选择省份的用户
					String chenghaoUrl = Config.CHENGHAO_URL;
					for (int i = 0; i < 5; i++) {
						time = (int) (Math.random() * 9000) + 1000;
						String requestUrl = chenghaoUrl + i + "&cachetime=" + System.currentTimeMillis();
						System.out.println(i + " ： " + requestUrl);
						String content = HttpUtil.sendGet(requestUrl);
						PersonListModel listModel = new Gson().fromJson(content, PersonListModel.class);
						System.out.println(i + " size " + listModel.data.size());
						for (PersonModel model : listModel.data) {
							// 去重
							if (!hashMap.containsKey(model.innerno)) {
								hashMap.put(model.innerno, model);
							}
						}
						Thread.sleep(time);
					}

					// 遍历hashmap，把数据都放到 listCache中
					Iterator iter = hashMap.entrySet().iterator();
					while (iter.hasNext()) {
						Map.Entry entry = (Map.Entry) iter.next();
						listCache.add((PersonModel) entry.getValue());
					}
					System.out.println("list cache size " + listCache.size());

					// 按经验值，降序排序
					Collections.sort(listCache, new ComparatorUser());

					// 基于经验值取数据
					// for (int i = 0; i < listCache.size(); i++) {
					// if (listCache.get(i).exp > STANDER) {
					// list.add(listCache.get(i));
					// } else {
					// break;
					// }
					// }

					// 基于排名取数据
					for (int i = 0; i < STANDER_RANK; i++) {
						list.add(listCache.get(i));
					}
					System.out.println("read data size " + list.size());

					String content = new Gson().toJson(list);
					// 写入本地，以防以外.如果write方法有误，可以在main里直接调用write方法进行调试，不用每次都等待read完毕
					FileUtil.writeFileToSD(today + Config.SUFFIX_TEXT, content);

					write();

				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}).start();

	}