package jiexi;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo {
static List<User> list;
private static void getFromList() throws Exception{
List<User> list2 = new ArrayList<User>();
for(int i=0;i<list.size();i++){
for(int j=i;j<list.size();j++){
if(list.get(i).getProcessID()==list.get(j).getProcessID()){
int time = Math.abs(list.get(j).getTime()-list.get(i).getTime());
list.get(i).setTime(time);
list2.add(list.get(i));
continue;
}
}
}
for (User user : list2) {
System.out.println(user.getLoginName());
System.out.println(user.getProcessID());
System.out.println(user.getLoginType());
System.out.println(user.getTime());
System.out.println(user.getIp());
}
}
//输出到out.txt中
private static void getOut() throws Exception {
File nf = new File("/home/sd1009/workspaces1/DMS/src/jiexi/out");
if(!nf.exists()){
nf.createNewFile();
System.out.println("succed");
}
// DataOutputStream out = new DataOutputStream(new FileOutputStream(nf));
// System.out.println(list.size());
// for (User ul : list) {
//// System.out.println(ul.getLoginName());
//// System.out.println(ul.getLoginType());
//// System.out.println(ul.getTime());
// out.writeChars(ul.getLoginName());
// out.writeInt(ul.getProcessID());
// out.writeInt(ul.getLoginType());
// out.writeInt(ul.getTime());
// out.writeChars(ul.getIp());
//
// }
// out.close();
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(nf),"UTF-8");
for(User u2 :list){
out.write(u2.getLoginName());
out.write(u2.getProcessID());
out.write(u2.getLoginType());
out.write(u2.getTime());
out.write(u2.getIp());
out.write("/n");
}
}
//从表中读取数据
private static void inPut() throws Exception{
list = new ArrayList<User>();
File f = new File("/home/sd1009/workspaces1/DMS/src/jiexi/wtmpx");
DataInputStream in = new DataInputStream(new FileInputStream(f));//从f中读取
try{
byte[] b = new byte[32];
byte[] ip = new byte[257];
System.out.println("file的长度:"+f.length());
int fg = (int) (f.length()/373);
int temp = 0;
while(temp<fg){ //1……f1
for(int i=temp+1;i<fg*373;i++){
User u = new User();
in.read(b);//用户登录名
u.setLoginName(new String(b));
in.skipBytes(36);
int t = in.readInt();//进程ID
u.setProcessID(t);
short sh = in.readShort();//登录类型
u.setLoginType(sh);
in.skipBytes(6);
int time = in.readInt();
u.setTime(time);
in.skipBytes(30);
in.read(ip);
u.setIp(new String(ip));
in.skipBytes(1);
if(sh==7 || sh==8){
list.add(u);
}
System.out.println(u.getIp());
System.out.println(u.getLoginName());
System.out.println(u.getLoginType());
System.out.println(u.getProcessID());
System.out.println(u.getTime());
}
temp++;
}
}catch(Exception e){};
in.close();
}
public static void main(String[] args) throws Exception{
inPut();
System.out.println("-------------------------");
getOut();
// System.out.println("get From List id相同的");
// getFromList();
}
}