我的Java学习之路(12)-- IO模拟手机号携号转网功能

本文介绍了使用Java实现手机号携号转网功能的过程,包括功能说明、实现思路和代码实现。用户在移动公司申请,移动查询欠费情况,数据写入文件;联通公司读取数据,添加到服务器。示例中通过名字匹配查询用户,实际操作中可按手机号查询。

一、功能说明

  • 根据国家政策,目前中国移动和中国联通开启了携号转网的活动:移动–>联通
  • 用户需要根据自己输入信息,到移动公司进行申请,用户输入信息,移动查询是否欠费,不欠费,将数据写入文件,欠费不予办理;
  • 前往联通公司办理业务,联通公司读取对象流,将数据添加到联通公司服务器,办理成功

二、思路

1. 构建用户对象:姓名、身份证号、资费金额、手机号码
2. 用户首先登陆移动信息,通过RandomAccessFile读取自己服务器文件cm.txt
3. 判定用户是否存在,判定是否欠费
4. 移动服务器将用户数据序列化,放入到 data.txt中
5. 用户前往联通大厅,联通服务器读取data.txt中,读取信息
6. 联通服务器将数据写入自己服务器cu.txt

数据文件格式如下:

编码格式:utf-8
姓名:12个字节
手机号:11个字节
身份证号:18个字节
资费:6个字节

李白   15312341234421421198912245299-136.5
孙尚香  15312341234421421198912245299+106.5
鲁班七号15312341234421421198912245299-126.5
王昭君  15312341234421421122112245299+336.5
诸葛亮  15312341234421421100112245299+536.5
妲己   15312341234421421198912245299-106.5
小乔   15312341234421421198912245299-236.5

三、代码实现

1. 首先是用户实体类

User.java

package com.feonix;

import java.io.Serializable;

/**
 * 用户类 实现 序列化接口(后面要用到序列化,所以这里必须实现序列化接口)
 * 
 * @author FeoniX
 *
 */
public class User implements Serializable {
   
   
	// 序列化唯一ID
	private static final long serialVersionUID = -571955106719025344L;
	/** 姓名 */
	private String name;
	/** 身份证号 */
	private String idCard;
	/** 手机号 */
	private String mobile;
	/** 资费金额 */
	private String cost;

	public User() {
   
   
		super();
	}

	public User(String name, String idCard, String mobile, String cost) {
   
   
		super();
		this.name = name;
		this.idCard = idCard;
		this.mobile = mobile;
		this.cost = cost;
	}

	public String getName() {
   
   
		return name;
	}

	public void setName(String name) {
   
   
		this.name = name;
	}

	public String getIdCard() {
   
   
		return idCard;
	}

	public void setIdCard(String idCard) {
   
   
		this.idCard = idCard;
	}

	public String getMobile() {
   
   
		return mobile;
	}

	public void setMobile(String mobile) {
   
   
		this.mobile = mobile;
	}

	public String getCost() {
   
   
		return cost;
	}

	public void setCost(String cost) {
   
   
		this.cost = cost;
	}

	@Override
	public String toString() {
   
   
		return "User [name=" + name + ", idCard=" + idCard + ", mobile=" + mobile + ", cost=" + cost + "]";
	}

}

2. 移动公司类</

代码简单干净,易于扩展。 随机生成用户名样例: 339063 77188 fengjr1980@yeah.net 97133 xupe19870102@sohu.com 18955990722 2145028 25070167 299966 13329809029 18739552501 77223 725525865 cheng1991 chub1974 13290062609 wangf19750725 caot19850619 545121 qianih19760611@msn.com 15208376363 xieww1979 shixd0904@126.com 18035677437 80892 18967033182 18923271615 15506730128 19741 fangi0713 15829813954 58285 yuanr19730429 shenpk 79607 15430 15226507276 13905108731 71852 qianmp19900629 15578331045 28116 18636868380 41560 zhengk1009@qq.com chuh19901023 269195 5678146 29585 18416167445 konghs1014 13404997586 30505 13647749758 13153649262 18779413966 wangqq1985 18906839566 18915522113 13392180833 1539516 zhaod19960502@ask.com 422424 heee0615 fengc@163.com 39174 xuyv19780415 15463681074 700812 73013 xuh0513 15505384990 hedd19940702 54021 xum19930812 youy1991 qiner 18033283015 yangwc 57195 qinu shenk0513 zhoufg 94597 95435 zhanvn1985 qiankh0104@ask.com kongw1993 zhuhv 15922309734 15015131852 15617928674 13135363801 18249225151 81438 13163635474 18615772400 hes0510 460915 wum19781014 491159 shenh1973 625701 34613 15732006897 fengdk1985 18517435664 13412117745 10157 chuza1993@163.com zhaokk0810@sina.com 34270 7744626 sunb0122 71114 91762 18506579548 yangmy0227 18791566645 13250565847 jiangvk1977 15250922291 37579 wangci1965 wangpq wango19850516 18531237843 18589683471 hegl1990 18714299209 zhant@gmail.com 29016 zhux1969 xiez1113 zhengtw 15490897758 18917969768 18149215132 18608279756 17149 18644736737 zhaov19880816 xuy@aol.com 5854142 18408454618 qinl1988 xubl1990 18852302621 18985792169 42928 18622907192 fanggs19960616@163.com 25150 47585 15086377222 617299 13447565144 668953950 4342797 18638890078 fangiq0615 zhuo19701127@ask.com 421528 15690966759 18058824538 18194138008 15770603106 heag0813 15793392577 470979 18402649812 1791830 18397977938 shukj19960528 87052642 chulu0119 jiangj1986 13210747847 47359 80638214 zhuey0405 94017 13636960571 18939715988 yuani0529@msn.com 58081 caodm1989 18420167788 13951603849 10205 164883 15513277337 29553 15011669462 87997 zhanji 29763568 13032055621 13617051541 lit
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值