import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Scanner;
public class Main {
public static void IP2Long(){
long i = 138;
i = (i << 8) | 12;
i = (i << 8) | 175;
i = (i << 8) | 183;
System.out.println("i = " + i);
}
public static String Long2IP(long ipAddr){
long j = ipAddr;
if(j == 0){
return Long.toString(j);
}
long i = 0;
StringBuilder IP = new StringBuilder();
for(int k = 0;k < 4;k++) {
i = j & 0xff;
j = j >> 8;
IP.append(i + ".");
}
return IP.toString();
}
public static String timeTransfer(long time) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeStr = format.format(time);
return timeStr;
}
public static String usedTimeTransfer(long ms){
StringBuilder totalTime = new StringBuilder();
long hour = ms/1000/3600;
long minute = (ms%3600000)/1000/60;
long second = (ms%60000)/1000;
totalTime.append(hour + "小时" + minute + "分" + second + "秒");
return totalTime.toString();
}
public static String readUserInfo(String userName){
BufferedReader userIn = null;
String userPath = "C:/Users/DELL/Desktop/" + userName;
StringBuilder userInfo = new StringBuilder(); //将读到的表信息放在userInfo中
try {
userIn = new BufferedReader(new InputStreamReader(
new FileInputStream(userPath),"GBK"));
String temp,typeStr;
int line = 1;
long time,ipAddr;
int type;
long beginTime = 0,endTime = 0,usedTime = 0,totalTime = 0;
// 一次读入一行,直到读入null为文件结束
while ((temp = userIn.readLine()) != null) {
System.out.print("line " + line + ": ");
String []arrayStr = temp.split(" ");
time = Long.parseLong(arrayStr[0]) * 1000;
type = Integer.parseInt(arrayStr[1]);
ipAddr = Long.parseLong(arrayStr[2]);
switch (type){
case 0:{
typeStr = "登录";
beginTime = time;
System.out.println("time=" + timeTransfer(time) + ",type=" + typeStr + ",ipAddr=" + Long2IP(ipAddr));
break;
}
case 1:{
typeStr = "注销";
endTime = time;
usedTime = endTime - beginTime;
totalTime = totalTime + usedTime;
System.out.println("time=" + timeTransfer(time) + ",type=" + typeStr + ",ipAddr=" + Long2IP(ipAddr)
+ ",totalTime=" + usedTimeTransfer(usedTime));
break;
}
case 2:{
typeStr = "超时";
endTime = time;
usedTime = endTime - beginTime;
totalTime = totalTime + usedTime;
System.out.println("time=" + timeTransfer(time) + ",type=" + typeStr + ",ipAddr=" + Long2IP(ipAddr)
+ ",totalTime=" + usedTimeTransfer(usedTime));
}
}
line++;
}
System.out.println("总用时:" + usedTimeTransfer(totalTime));
return userInfo.toString();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
userIn.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return userInfo.toString();
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String userName = scanner.next();
readUserInfo(userName);
}
}
1544065474 0 2316087223
1544065704 1 0
1544065757 0 2316087223
1544066358 2 0
1544149585 0 2316087223
1544149807 0 2316087223
1544149857 0 2316087223
1544149892 0 2316087223
1544149948 0 2316087223
1544150029 0 2316087223
1544150135 1 0
1544492366 0 2316087223
1544493121 2 0
1544494063 0 2316087223
1544495030 1 0
1544495065 0 2316087223
1544495191 1 0
1544496425 0 2316087223
1544496683 0 2316087223
1544496724 1 0
1544513256 0 2316087223
1544513916 2 0
1544515411 0 2316087223
1544516012 1 0
line 1: time=2018-12-06 11:04:34,type=登录,ipAddr=183.175.12.138.
line 2: time=2018-12-06 11:08:24,type=注销,ipAddr=0,totalTime=0小时3分50秒
line 3: time=2018-12-06 11:09:17,type=登录,ipAddr=183.175.12.138.
line 4: time=2018-12-06 11:19:18,type=超时,ipAddr=0,totalTime=0小时10分1秒
line 5: time=2018-12-07 10:26:25,type=登录,ipAddr=183.175.12.138.
line 6: time=2018-12-07 10:30:07,type=登录,ipAddr=183.175.12.138.
line 7: time=2018-12-07 10:30:57,type=登录,ipAddr=183.175.12.138.
line 8: time=2018-12-07 10:31:32,type=登录,ipAddr=183.175.12.138.
line 9: time=2018-12-07 10:32:28,type=登录,ipAddr=183.175.12.138.
line 10: time=2018-12-07 10:33:49,type=登录,ipAddr=183.175.12.138.
line 11: time=2018-12-07 10:35:35,type=注销,ipAddr=0,totalTime=0小时1分46秒
line 12: time=2018-12-11 09:39:26,type=登录,ipAddr=183.175.12.138.
line 13: time=2018-12-11 09:52:01,type=超时,ipAddr=0,totalTime=0小时12分35秒
line 14: time=2018-12-11 10:07:43,type=登录,ipAddr=183.175.12.138.
line 15: time=2018-12-11 10:23:50,type=注销,ipAddr=0,totalTime=0小时16分7秒
line 16: time=2018-12-11 10:24:25,type=登录,ipAddr=183.175.12.138.
line 17: time=2018-12-11 10:26:31,type=注销,ipAddr=0,totalTime=0小时2分6秒
line 18: time=2018-12-11 10:47:05,type=登录,ipAddr=183.175.12.138.
line 19: time=2018-12-11 10:51:23,type=登录,ipAddr=183.175.12.138.
line 20: time=2018-12-11 10:52:04,type=注销,ipAddr=0,totalTime=0小时0分41秒
line 21: time=2018-12-11 15:27:36,type=登录,ipAddr=183.175.12.138.
line 22: time=2018-12-11 15:38:36,type=超时,ipAddr=0,totalTime=0小时11分0秒
line 23: time=2018-12-11 16:03:31,type=登录,ipAddr=183.175.12.138.
line 24: time=2018-12-11 16:13:32,type=注销,ipAddr=0,totalTime=0小时10分1秒
总用时:1小时8分7秒