亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gatherimpl.java

?? java的團隊合作代碼
?? JAVA
字號:
package com.briup.impl.gather;

import java.util.*;
import java.io.*;
import java.net.*;
import java.sql.Date;
import com.briup.BIDR;
import com.briup.Gather;
import com.briup.exception.GatherException;

/**
 * @author renqs
 * @company Briup Technology Inc,.(Shanghai)
 * @date JUL 2, 2008 2:58:31 AM
 */
public class GatherImpl implements Gather {

	private Map<String, BIDR> loginData = new HashMap<String, BIDR>();
	private List<BIDR> bidrs = new ArrayList<BIDR>();
	private String dataSourceFile = "src/com/briup/resource/radwtmp";
	private String dataBakFile = "src/com/briup/resource/dataBakFile";
	private String dataPositionFile = "src/com/briup/resource/dataPositionFile";
	private static String labIp = "";

	public GatherImpl(Properties props) throws UnknownHostException {

		String pDataSourceFile = null;
		String pDataBakFile = null;
		String pDataPositionFile = null;
		pDataSourceFile = props.getProperty("data_source_file_url");
		pDataBakFile = props.getProperty("data_bak_file_url");
		pDataPositionFile = props.getProperty("data_position_file_url");
		if (pDataSourceFile != null)
			dataSourceFile = pDataSourceFile;
		if (pDataBakFile != null)
			dataBakFile = pDataBakFile;
		if (pDataPositionFile != null)
			dataPositionFile = pDataPositionFile;
		labIp = InetAddress.getLocalHost().getHostAddress().toString();
	}

	/**
	 * 將解析得到的BIRD對象存放到集合中
	 * 
	 * @return Collection<BIDR> 存放BIRD對象的List集合
	 */
	public Collection<BIDR> doGather() throws GatherException {
		try {
			getLoginDataFromFile(dataBakFile);
			gather(dataSourceFile);
			saveSingleLogin2File(dataBakFile);
		} catch (Exception e) {
			e.printStackTrace();
			throw new GatherException("gather error!");
		}
		return getbidrs();
	}

	/**
	 * 從備份文件中讀取上次解析沒有匹配成功的記錄
	 */
	@SuppressWarnings("unchecked")
	private void getLoginDataFromFile(String dataBakFile)
			throws FileNotFoundException, IOException, ClassNotFoundException {
		File f = new File(dataBakFile);
		if (f.exists() && f.canRead()) {
			Map<String, BIDR> bakMap = null;
			ObjectInputStream ois = null;
			try {
				ois = new ObjectInputStream(new FileInputStream(f));
				bakMap = (Map) ois.readObject();
				if (bakMap != null && bakMap.size() > 0)
					loginData = bakMap;
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				if (ois != null)
					try {
						ois.close();
					} catch (Exception e) {
						e.printStackTrace();
					}
			}
		}
	}

	/**
	 * 解析radWtmpx文件,封裝成數組對象后存放到Map中,并記錄文件讀取到的位置
	 */

	private void gather(String dataSourceFile) throws IOException {
		File f = new File(dataSourceFile);
		RandomAccessFile raf = null;
		if (f.exists() && f.canRead()) {
			raf = new RandomAccessFile(f, "rw");// "r"表示以只讀方式打開
		}
		long position = 0l;
		//position = getPositionFromFile(dataPositionFile);
		raf.seek(position); // 表示從此文件指針偏移量所在該位置開始讀取或寫入文件
		String source = null;
		while ((source = raf.readLine()) != null) {
			String sArray[] = getArrayFromString(source);
			String key = sArray[1].trim() + sArray[4];
			BIDR bidr = null;
			if (sArray[2].trim().equals("7")) {
				if (!loginData.containsKey(key)) {
					bidr = getArray2bird(sArray);
					loginData.put(key, bidr);
				}
			}
			if (sArray[2].trim().equals("8")) {
				String sDate = sArray[3];
				bidrs.add(matchbidrs(key, sDate));
				loginData.remove(key);
			}
		}
		position = raf.getFilePointer();
		//savePosition2File(dataPositionFile, position);
	}

	/**
	 * 從map中取出BIRD對象,設定登出時間與撥號時長,并返回該BIRD對象
	 */
	public BIDR matchbidrs(String key, String date) {
		BIDR bidr = null;
		bidr = (BIDR) loginData.get(key);
		Date loginDate = bidr.getLoginDate();
		Date logoutDate = getDate(date);
		long timeDuration = (logoutDate.getTime() - loginDate.getTime())
				/ (1000 * 60);
		if (timeDuration < 1)
			timeDuration = 1;
		bidr.setLogoutDate(logoutDate);
		bidr.setTimeDuration(timeDuration);
		return bidr;
	}

	/**
	 * 讀取數組中的元素,將其封裝成BIRD對象
	 */
	private BIDR getArray2bird(String[] sArray) {
		BIDR bidr = null;
		
		return bidr;
	}

	/**
	 * 將一個用long類型表示的毫秒值封裝成java.sql.Date對象
	 */
	private Date getDate(String sDate) {
		return new Date(Long.parseLong(sDate+"000"));
	}

	/**
	 * 將讀取出來的一行記錄解析封裝成數組
	 */
	private String[] getArrayFromString(String source) {
		return null;
	}

	/**
	 * 從文件中讀取上次讀取到的文件的位置
	 */
	private long getPositionFromFile(String dataPositionFile) {
		long position = 0L;
		File file = new File(dataPositionFile);
		RandomAccessFile raf = null;
		if (file.exists() && file.canRead()) {
			try {
				raf = new RandomAccessFile(file,"rw");
				position = raf.readLong();
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				if (raf != null)
					try {
						raf.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
			}
		}
		return position;
	}

	/**
	 * 將本次解析到的文件的位置保存到文件中
	 */
	private void savePosition2File(String dataPositionFile, long position) {
		File file = new File(dataPositionFile);
		DataOutputStream dos = null;
		try {
			dos = new DataOutputStream(
					new FileOutputStream(file));
			try {
				dos.writeLong(position);
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} finally {
			if (dos != null)
				try {
					dos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
		}
	}

	/**
	 * 將沒有匹配的記錄(Map<String, BIDR>)保存在文件中
	 */
	private void saveSingleLogin2File(String dataBakFile)
			throws FileNotFoundException, IOException {
		File f = new File(dataBakFile);
		ObjectOutputStream oos = null;
		try {
			oos = new ObjectOutputStream(new FileOutputStream(f));
			oos.writeObject(loginData);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (oos != null)
				try {
					oos.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
		}
	}

	public Map<String, BIDR> getLoginData() {
		return loginData;
	}

	public void setLoginData(Map<String, BIDR> loginData) {
		this.loginData = loginData;
	}

	public List<BIDR> getbidrs() {
		return bidrs;
	}

	public void setbidrs(List<BIDR> bidrs) {
		this.bidrs = bidrs;
	}
	
	public static void main(String[] args){
		Properties props = new Properties();
		props.setProperty("data_source_file_url",
				"src/com/briup/resource/radwtmp");
		props.setProperty("data_bak_file_url", "src/com/briup/resource/dataBakFile");
		props.setProperty("data_position_file_url",
				"src/com/briup/resource/dataPositionFile");
		List<BIDR> list = new ArrayList<BIDR>();
		try {
			GatherImpl gatherimpl = new GatherImpl(props);
			list = (List<BIDR>) gatherimpl.doGather();
			System.out.println("SUM:" + list.size());
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (GatherException e) {
			e.printStackTrace();
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品色一区二区三区| 成人网页在线观看| 4438成人网| 麻豆成人免费电影| 欧美精品一区二区久久久| 国产盗摄一区二区| 国产精品天天摸av网| 波多野结衣一区二区三区| 国产精品国产三级国产三级人妇| 色综合久久综合网欧美综合网| 亚洲一级二级三级在线免费观看| 欧美精品高清视频| 国产制服丝袜一区| 中文字幕在线免费不卡| 精品视频123区在线观看| 日本欧美一区二区| 国产午夜亚洲精品羞羞网站| 99免费精品视频| 五月激情丁香一区二区三区| 久久毛片高清国产| 91久久国产最好的精华液| 亚洲电影第三页| 日韩精品最新网址| av不卡免费在线观看| 午夜日韩在线观看| 国产亚洲精久久久久久| 91蝌蚪porny| 麻豆成人av在线| **网站欧美大片在线观看| 精品视频在线免费观看| 国内精品久久久久影院色| 亚洲精品五月天| 精品国产乱码久久久久久闺蜜| 99国产精品一区| 久久 天天综合| 亚洲免费看黄网站| 亚洲精品一区二区三区四区高清| 91看片淫黄大片一级| 日韩av一区二区三区| 国产精品久久久久影院色老大 | 裸体一区二区三区| 国产精品福利av| 精品国产百合女同互慰| 色8久久精品久久久久久蜜| 国产精品自产自拍| 婷婷久久综合九色综合绿巨人| 国产欧美一区二区精品婷婷| 欧美人与性动xxxx| 99久久精品国产导航| 精品一区中文字幕| 水蜜桃久久夜色精品一区的特点| 国产精品国产精品国产专区不蜜 | 色综合久久久久久久| 精一区二区三区| 亚洲午夜精品网| 国产精品国产三级国产三级人妇 | 亚洲国产成人午夜在线一区| 欧美狂野另类xxxxoooo| 99精品欧美一区二区三区小说| 久久精品国产亚洲5555| 午夜一区二区三区在线观看| 亚洲美女一区二区三区| 国产精品美女久久久久aⅴ国产馆| 91精品久久久久久久91蜜桃| 欧美少妇bbb| 91一区二区三区在线观看| 丁香桃色午夜亚洲一区二区三区| 另类小说一区二区三区| 日本女人一区二区三区| 亚洲成人黄色小说| 亚洲国产一区在线观看| 亚洲乱码国产乱码精品精的特点| 国产嫩草影院久久久久| www日韩大片| 精品久久久久久久久久久久久久久 | 欧美aaa在线| 丝袜美腿亚洲色图| 午夜视频在线观看一区二区三区| 亚洲在线视频网站| 亚洲国产日韩一区二区| 亚洲与欧洲av电影| 亚洲成人免费在线观看| 天天综合色天天| 午夜精品国产更新| 日韩精品91亚洲二区在线观看 | 日韩欧美中文字幕一区| 91精品婷婷国产综合久久性色| 欧美日韩你懂得| 欧美一三区三区四区免费在线看 | 国产精品久久久久久久久搜平片| 国产午夜精品久久久久久久| 久久麻豆一区二区| 国产精品乱码人人做人人爱| 国产精品网站在线播放| 亚洲老司机在线| 亚洲h在线观看| 久久不见久久见中文字幕免费| 国模无码大尺度一区二区三区| 国产一区美女在线| 99精品黄色片免费大全| 欧美日韩一区二区三区在线看| 欧美一区二区三区免费大片| 欧美大片在线观看一区二区| 国产人成亚洲第一网站在线播放 | 久久免费的精品国产v∧| 中文字幕乱码久久午夜不卡| 亚洲男人天堂av| 三级亚洲高清视频| 国产精品99久久久久久有的能看| 成人免费视频一区| 欧美怡红院视频| 欧美电影免费观看高清完整版| 久久精品视频一区| 亚洲最色的网站| 黑人巨大精品欧美一区| 成人app在线观看| 欧美日韩国产中文| 久久精品视频一区| 亚洲国产视频网站| 国产精品2024| 在线亚洲+欧美+日本专区| 欧美大胆人体bbbb| 亚洲激情综合网| 精品在线免费观看| 在线精品观看国产| 久久免费的精品国产v∧| 亚洲自拍偷拍麻豆| 国产mv日韩mv欧美| 3d成人h动漫网站入口| 中文字幕一区二区三区不卡| 日韩精品国产精品| 99精品视频免费在线观看| 欧美一区二区女人| 亚洲免费av高清| 国产一区二区三区四区五区入口| 欧美一a一片一级一片| 亚洲国产精品精华液ab| 日韩精品一卡二卡三卡四卡无卡| caoporn国产一区二区| 精品剧情在线观看| 五月天婷婷综合| eeuss影院一区二区三区| wwwwww.欧美系列| 亚洲精品亚洲人成人网在线播放| 另类欧美日韩国产在线| 欧美日韩在线播放一区| 国产精品久久久久影院亚瑟| 韩国成人福利片在线播放| 欧美日韩国产一区二区三区地区| 国产精品免费久久| 国产在线精品免费| 日韩欧美一级在线播放| 亚洲最快最全在线视频| 91亚洲国产成人精品一区二区三| 久久人人爽人人爽| 久久国产精品色| 日韩三级精品电影久久久| 亚洲aⅴ怡春院| 欧美丝袜丝交足nylons图片| 亚洲欧美一区二区三区国产精品 | 日韩精品一级中文字幕精品视频免费观看 | 老司机午夜精品99久久| 欧美视频一区二区在线观看| 亚洲品质自拍视频| 99久久久无码国产精品| 日本一区二区在线不卡| 韩国精品在线观看| 精品国产精品网麻豆系列| 麻豆精品久久久| 日韩午夜小视频| 久久99精品久久久久| 精品国产免费人成在线观看| 青青草91视频| 欧美精品一区二区精品网| 精品在线观看视频| 国产日韩欧美电影| 成人黄色片在线观看| 亚洲视频免费看| 日本黄色一区二区| 亚洲尤物在线视频观看| 欧美日韩国产片| 日韩**一区毛片| 日韩精品综合一本久道在线视频| 精品一区二区三区免费视频| 久久精品一二三| 菠萝蜜视频在线观看一区| 日韩码欧中文字| 欧美视频一区二区三区在线观看| 亚洲国产日韩一级| 精品久久久久一区| 成人av资源下载| 亚洲国产精品一区二区久久恐怖片| 欧美色国产精品| 狠狠网亚洲精品| 国产精品卡一卡二卡三| 日本高清不卡一区| 日本va欧美va精品| 国产日产欧产精品推荐色 | 久久午夜电影网| 97久久超碰国产精品电影|