电信采集系统项目

本文详细介绍了电信运营采集系统的设计与实现,包括数据采集、备份、网络传输及数据库入库等关键模块。作者作为JavaEE初学者,利用现有知识完成了该项目,通过实例代码展示了如何处理数据并备份不完整数据,以及客户端与服务器端的数据交互。同时,文章还分享了作者在项目中遇到的问题及解决心得。
摘要由CSDN通过智能技术生成
既然选择了远方 便只顾风雨兼程
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Woss:电信运营采集系统
1 流程:
   数据----采集数据---客户端--(发送信息)--服务器端---(jdbc)---数据库


2 项目模块的需求划分:
   采集模块  备份模块  网络模块  入库模块  日志模块 配置文件模块


3 注:
  1)数据的格式:
  AAA_Name | NAS_ip | 7(上线) 8(下线)| 时间戳(上/下)| logied_ip(用户登陆ip)
  2)我是学习JavaEE的一只菜鸟 然而目前为止 我只学过corejava + oracle+JDBC/Mybatis技术  后续的框架之类的各种知识没有学习,
所以就综合目前的知识做了这样的一个项目来练习 ~~~让我们一起进步 一起奋斗撒~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 各模块代码(主体代码)
1) 采集模块---得到完整数据,同时对不完整数据进行备份
package com.briup.client;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.briup.backup.BackByte;
import com.briup.backup.BackupImp;
import com.briup.bean.BIDR;
import com.briup.logger.LoggerImp;
import com.briup.util.Dom4jTest;
/*定义一个方法:存放对象BIDR
 *1 首先通过输入流,获取字节数,并跳过字节数 来 while循环读取文件中的数据,将数据以|分割变成一个数组
 *2 将每条数据中的标志位是7时:则表示上网 ----map??
 *                    是8时:表示下线-------list集合
 *并将读取到的每条数据中的各个元素赋值给BIDR对象   
 *3 将map集合中的数据 备份到备份文件中--store  
 *4 下一次读取时 将备份文件读取 继续处理---load
 *5 返回list集合中的数据
 */
//GatherImp采集类--实现接口IGTather:
public class GatherImp implements IGather {

FileInputStream fis = null;
InputStreamReader isr= null;
BufferedReader br  = null;
String line = null;
List<BIDR> list2= null;
Map<String, BIDR> map = null;
 
@Override
//采集数据方法:
public  Collection<BIDR>  gather() throws Exception{
//通过Dom4j解析 得到日志对象logger:
Object logger = Dom4jTest.mapCnameAndObject().get("com.briup.logger.LoggerImp");

String path = Dom4jTest.ParseXML("src-file");//采集数据路径
File file = new File(path);
list2 = new ArrayList<BIDR>();
map=new HashMap<String,BIDR>();
//通过解析文件得到对应类的对象backup:
Object backup = Dom4jTest.mapCnameAndObject().get("com.briup.backup.BackupImp");//得到备份对象
String buakupPath = Dom4jTest.ParseXML("back-temp");//备份文件路径
//读取数据文件radwtmp:
fis = new FileInputStream(file);
isr = new InputStreamReader(fis);         //字节流转换为字符流
br = new BufferedReader(isr);
int index = 0;
//若备份集合存在,则进行加载备份文件:
if(new File(buakupPath).exists()){

Map<String, BIDR> map2 = (Map<String, BIDR>) ((BackupImp) backup).load(buakupPath);
map.putAll(map2);        //将上一次的不完整数据map2添加到本次的map集合中 
}

BackByte backByte =new BackByte(); //字节对象
index = backByte.ReadByte(); //读取到文件中的字节数index
br.skip(index);
while((line = br.readLine())!=null){
index = index+line.getBytes().length+2; //计数每行的字节数index
//以 | 进行分割字符串
String[] Array = line.split("[|]");
String aaa_login_name = Array[0] ;
String nas_ip = Array[1];
Date date = new Date(Long.parseLong(Array[3])*1000);  //将 秒单位 转换 为毫秒数
String login_ip= Array[4];
//上网:
if(("7").equals(Array[2])){
BIDR bidr = new BIDR();
bidr.setAaa_login_name(aaa_login_name.substring(1));
bidr.setNas_ip(nas_ip);
bidr.setLogin_date(date);
bidr.setLogin_ip(login_ip);
//若标志位等于7:则将该用户放
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值