JAVA批量获取归属地所有手机号

本文介绍了一种批量查询手机号段归属地的方法,并将符合条件的手机号保存至文本文件的技术实现。具体步骤包括读取本地文件中的号段,通过网络请求获取每个号段下手机号的归属地信息,最后按特定格式保存至多个文件。

本DEMO涉及知识有:网络请求POST、本地文件读取、本地文件写入。非常简单。

以下是详细步骤:

一、找到手机号段

(想查得到地区的手机号段),我是找临沂的,将号段保存在文本中。列出部分号段及格式展示

130
1300157	1300279	1301279	1301350	1301351	1301352	1301353	1301354	1301355

注意格式,解析时使用。

二、读取文本中数据并解析

//读取文件
	public static String readTxt(String txtPath) {
        File file = new File(txtPath);
        if(file.isFile() && file.exists()){
            try {
                FileInputStream fileInputStream = new FileInputStream(file);
                InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                 
                StringBuffer sb = new StringBuffer();
                String text = null;
                while((text = bufferedReader.readLine()) != null){
//                	System.out.println(text);
                    if(!"".equals(text) && text != null){
                    	if(text.length() > 3){
                    		sb.append(text.replaceAll("	", ","));
                    		sb.append(",");
                    	}
                    }
                }
                return sb.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }

三、便利号段、补全手机号、查询归属地

//读取文件中手机号段
String str = readTxt("E:/qwertyu.txt");
String[] strs = str.split(",");
//循环号段
for (String value : strs) {
	//号段是7位的 判断
	if(value.length() == 7){
		System.out.println(value);
		String iphone = "";
		//号段后 补全
		for(int i = 0; i < 9999; i++){
			//每1000个号码打印一次记录
			if(i % 1000 == 0){
				System.out.println("==="+value+"===> " + i + " <===");
			}
			//拼接完整 手机号
			iphone = value + format(""+i,4);
			//获取手机号归属地
			String httpstr = doPost("http://www.yzcopen.com/con/getiphone","iphone="+iphone);
			//返回json数据,没必要解析。直接判断归属地
			if(httpstr != null && !"".equals(httpstr) && httpstr.indexOf("临沂") > 0){
				//符合要求手机号
				System.out.printl
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马志武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值