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

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

?? logreader.java

?? Last指令
?? JAVA
字號:
import java.io.File;
import java.io.FileInputStream;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.text.DecimalFormat;
import java.util.Vector;


public class LogReader {
	private File filename;//要處理的文件
	private LogDealer   logdealer;//負責輸出數據. 
	
	public File getFilename() {
		return filename;
	}
	public void setFilename(File filename) {
		this.filename = filename;
	}
	public LogDealer getLogdealer() {
		return logdealer;
	}
	public void setLogdealer(LogDealer logdealer) {
		this.logdealer = logdealer;
	}
	/**
	 * 把日志文件映射成內存緩沖
	 * @param File f日志文件
	 * @return MappedByteBuffer 內存映射緩沖。
	 * @throws 考慮異常
	 * */
	private MappedByteBuffer  mappedFile2Buffer(File f) throws Exception{		
		FileInputStream fis=new FileInputStream(f);
		FileChannel fc=fis.getChannel();				
		return fc.map(FileChannel.MapMode.READ_ONLY, 0, f.length());
	}
	/**
	 * 讀取所有登錄日志,并按登入與登出分類放入數據結構
	 * @param  MappedByteBuffer buffer     日志文件的內存緩沖
	 *         Vector<LogRecord> logins    日志的登入數據
	 *         Vector<LogRecord> logouts   日志的登出數據
	 * @return void
	 * @throws 考慮異常        
	 * */
	private void readLog(MappedByteBuffer buffer,
			Vector<LogRecord> logins,Vector<LogRecord> logouts){
		int len=buffer.capacity()/372;//記錄條數
		for(int i=0;i<len;i++){//循環讀取數據			
			buffer.position(i*372);
			byte[]  busername=new byte[32];
			buffer.get(busername);//讀取用戶名
			String username=new String(busername).trim();
			if(username.startsWith(".")){continue;}
			LogRecord log=new LogRecord();
			log.setUsername(username);			
			buffer.get(new byte[4]);//跳4字節
			byte[] bdevice=new byte[32];//讀取設備類型
			buffer.get(bdevice);
			log.setDevice(new String(bdevice).trim());			
			log.setPid(buffer.getInt());//進程ID			
			short type=buffer.getShort();//登錄類型			
			buffer.get(new byte[6]);//跳6個字節
			log.setVisittime(buffer.getInt());//登錄時間
			buffer.get(new byte[30]);//跳30字節
			byte[] buserip=new byte[257];//客戶IP
			buffer.get(buserip);
			log.setUserip(new String(buserip).trim());
			//分類存放到數據結構.
			if(type==7){/*登入*/	logins.add(log);}
			if(type==8){/*登出*/	logouts.add(log);}
		}
		buffer.clear();
		buffer=null;
	}
	/**
	 * 把登錄數據按一個登入一個登出匹配成一條完整的登錄過程記錄。
	 * @param  Vector<LogRecord> logins		日志的登入數據
	 *         Vector<LogRecord> logouts	日志的登出數據
	 * @return Vector<MatchedRecord> 所有完整的登入/登出記錄
	 * @throws 考慮異常        
	 * */
	private Vector<MatchedRecord> match(Vector<LogRecord> logins,Vector<LogRecord> logouts){
		Vector<MatchedRecord> re=new Vector<MatchedRecord>();/** 循環匹配查找.找到:就得到匹配數據* 找不到:就表示在線**/
		int num=logins.size();		
		NEXT:for(int i=0;i<num;i++){
			LogRecord login=logins.get(0);
			MatchedRecord matched=new MatchedRecord();
			matched.setUsername(login.getUsername());matched.setDevice(login.getDevice());
			matched.setUserip(login.getUserip());matched.setLogintime(login.getVisittime());
			for(int j=0;j<logouts.size();j++){				
				LogRecord logout=logouts.get(j);				
				if(login.equals(logout)){//匹配										
					matched.setLogouttime(logout.getVisittime());//匹配成功,則生成一條登錄數據					
					long duration=logout.getVisittime()-login.getVisittime();
					int days=(int)(duration/(24*60*60));
					duration=(int)(duration-days*(24*60*60));
					int hours=(int)(duration/(60*60));
					duration=(int)(duration-hours*(60*60));
					int minutes=(int)(duration/60);
					String sduration="";
					if(days>0){sduration+="<+"+days+">";}
					DecimalFormat format=new DecimalFormat("00");
					sduration+=format.format(hours)+":"+format.format(minutes);
					matched.setDuration(sduration);					
					logouts.remove(logout);/*刪除該登出數據*/logins.remove(login);//刪除該登入數據
					re.add(matched);continue NEXT;}}			 
			matched.setLogouttime(0);//沒有匹配成功,表示在線。
			matched.setDuration("仍然在登錄狀態");
			logins.remove(login);
			re.add(matched);}
		return re;
	}
	/**
	 * 得到所有的登錄歷史數據
	 * @param  無
	 * @return void
	 * @throws 考慮異常
	 * */
	public  void collect()throws Exception{
		MappedByteBuffer buffer=mappedFile2Buffer(filename);
		Vector<LogRecord> logins=new Vector<LogRecord>();
		Vector<LogRecord> logouts=new Vector<LogRecord>();
		readLog(buffer, logins, logouts);
		Vector<MatchedRecord> matched=match(logins,logouts);
		
		logdealer.deal(matched);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人自拍视频在线| 欧美一区二区人人喊爽| 欧美日韩精品专区| 久久九九久精品国产免费直播| 国产精品超碰97尤物18| 久久er99精品| 欧美中文字幕不卡| 亚洲婷婷在线视频| 国产麻豆成人精品| 91精品啪在线观看国产60岁| 亚洲欧美另类小说| 成人免费不卡视频| 久久综合九色综合欧美就去吻| 亚洲国产欧美日韩另类综合| 99精品久久只有精品| 久久午夜羞羞影院免费观看| 免费成人在线观看| 制服视频三区第一页精品| 亚洲精品福利视频网站| 成人免费观看av| 亚洲国产精品成人综合色在线婷婷 | 夜色激情一区二区| 99r精品视频| 国产精品每日更新在线播放网址| 国产毛片精品一区| 欧美大黄免费观看| 蜜桃精品视频在线观看| 欧美一级片免费看| 男人的天堂亚洲一区| 3d动漫精品啪啪| 日韩和欧美一区二区三区| 欧美美女一区二区| 天涯成人国产亚洲精品一区av| 在线观看亚洲一区| 亚洲午夜影视影院在线观看| 在线观看日韩av先锋影音电影院| 亚洲另类在线一区| 91精彩视频在线| 亚洲一区二区三区四区在线免费观看 | 色8久久人人97超碰香蕉987| 亚洲欧洲日韩女同| 91看片淫黄大片一级在线观看| 亚洲日本护士毛茸茸| 欧美在线高清视频| 三级在线观看一区二区| 欧美一级欧美一级在线播放| 精品制服美女丁香| 国产日韩欧美激情| 色综合久久久久综合99| 亚洲综合一二三区| 4438x成人网最大色成网站| 久久精品999| 欧美国产日本视频| 色综合久久久久综合体| 丝袜美腿一区二区三区| 日韩一区二区免费视频| 国产精品456露脸| 亚洲情趣在线观看| 91精品国产综合久久国产大片| 久色婷婷小香蕉久久| 亚洲国产成人午夜在线一区| 一本大道久久a久久精二百| 亚洲成人av一区二区| 精品国产123| 成人激情午夜影院| 日韩电影网1区2区| 国产精品系列在线| 91精品国产色综合久久久蜜香臀| 国产成人av一区| 亚洲国产日韩a在线播放| 久久久91精品国产一区二区精品 | 亚洲女人****多毛耸耸8| 欧美日韩一区二区在线观看视频| 韩国精品久久久| 亚洲欧美日韩精品久久久久| 欧美成人精品3d动漫h| 色综合久久天天| 国产一区二区在线电影| 夜夜揉揉日日人人青青一国产精品| 欧美电视剧在线看免费| 99久久久久久| 国产在线精品一区二区| 一区二区三区欧美日韩| 久久亚区不卡日本| 91精品蜜臀在线一区尤物| 成人自拍视频在线| 久久99精品一区二区三区三区| 亚洲丝袜另类动漫二区| 欧美一区二区人人喊爽| 欧美视频精品在线观看| 成人黄色片在线观看| 国产资源精品在线观看| 天天影视色香欲综合网老头| 亚洲欧美综合色| 久久一日本道色综合| 欧美一区二区美女| 欧美久久婷婷综合色| 色综合中文字幕国产 | 色偷偷久久一区二区三区| 国产精品白丝jk白祙喷水网站| 午夜国产精品一区| 一区二区高清在线| 亚洲三级免费观看| 综合久久久久久| 国产精品第五页| 国产精品私房写真福利视频| 国产日韩欧美激情| 久久久777精品电影网影网| 欧美精品一区二| 欧美大胆一级视频| 精品久久久久久久人人人人传媒 | 美女脱光内衣内裤视频久久网站 | 日韩区在线观看| 56国语精品自产拍在线观看| 欧美色男人天堂| 欧美日韩一区二区三区高清| 在线免费观看一区| 欧美性大战久久久久久久蜜臀| 一本色道久久综合亚洲aⅴ蜜桃 | 国产精品久久久久天堂| 中文久久乱码一区二区| 国产精品免费丝袜| 中文字幕视频一区二区三区久| 亚洲国产精品二十页| 中文字幕在线免费不卡| 日韩毛片在线免费观看| 一区二区三区在线免费播放| 亚洲黄色av一区| 午夜久久久久久久久久一区二区| 天天av天天翘天天综合网色鬼国产| 亚洲3atv精品一区二区三区| 亚洲国产精品久久久男人的天堂| 亚洲va欧美va人人爽| 久久精品久久精品| 国产成人无遮挡在线视频| av色综合久久天堂av综合| 色老头久久综合| 91精品国产91综合久久蜜臀| 精品免费一区二区三区| 中文文精品字幕一区二区| 一区二区三国产精华液| 麻豆成人久久精品二区三区小说| 国产成人av电影在线| 色又黄又爽网站www久久| 欧美日韩精品欧美日韩精品| 欧美精品一区二区三区很污很色的| 国产欧美精品一区| 亚洲在线视频网站| 国产精品一卡二| 在线观看欧美日本| 久久久99免费| 亚洲高清免费视频| 高清不卡一二三区| 欧美日韩国产天堂| 国产丝袜欧美中文另类| 亚洲成人午夜电影| 国产乱码精品一区二区三区忘忧草 | 色综合婷婷久久| 日韩欧美电影一二三| 中文字幕一区二| 免费看精品久久片| bt7086福利一区国产| 欧美一区二区三区视频在线观看| 国产欧美日韩麻豆91| 日韩精品乱码免费| 91丨九色porny丨蝌蚪| 精品国产乱码久久| 婷婷综合久久一区二区三区| 成人h精品动漫一区二区三区| 在线电影院国产精品| 亚洲欧美日韩一区二区| 国产精品66部| 精品久久一区二区| 偷窥少妇高潮呻吟av久久免费| 成人性生交大片免费看视频在线 | 欧美男男青年gay1069videost| 国产欧美一区二区精品性色超碰| 香蕉成人啪国产精品视频综合网| 丁香亚洲综合激情啪啪综合| 91精品婷婷国产综合久久竹菊| 亚洲综合男人的天堂| 99视频有精品| 国产三级三级三级精品8ⅰ区| 日韩电影免费在线看| 在线视频你懂得一区| 1024精品合集| 成人午夜视频网站| 欧美精品一区二区久久久| 日韩黄色小视频| 欧美日韩一区在线| 亚洲第一激情av| 欧美影院一区二区| 一区二区三区在线观看视频| www.成人网.com| 中文字幕av在线一区二区三区| 国产自产v一区二区三区c| 精品国产一区二区三区忘忧草| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美日本在线播放| 天堂影院一区二区|