查看历史登陆信息
思想:每一次登陆的信息都是用txt文件来保存的(所以要用到流,我这里用的流是RandomAccessFile和InputStream),这样就可以达到信息可持续化保存。
实现方式:1.实例StringBuilder对象用来记录用户登陆的信息
2. 使用RandomAccessFile流将把记录用户信息输出到文件中,(为了防止用户信息被覆盖,需要先调一下指针)
3.读取记录用户的信息的文件查看历史登陆信息
//模拟登陆
public static void landing() throws IOException{
String user="用户名:";
String password=" 密码:";
String datetime=" 登陆时间:";
//Scanner:文本扫描器
StringBuilder sb=new StringBuilder();
Scanner sc=new Scanner(System.in);
//记录用户名
sb.append(user);
System.out.print(user);
//返回一行
String aa=sc.next();
sb.append(aa);
//记录密码
sb.append(password);
System.out.print("密码:");
Scanner sc1=new Scanner(System.in);
String bb=sc1.next();
sb.append(bb);
//记录登陆时间
DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dt=new Date();
String time=df.format(dt);
System.out.println(datetime+time);
sb.append(datetime);
sb.append(time);
//创建文件
File fi=new File("D:/历史登陆信息.txt");
if(fi.isFile()){
//创建文件
fi.createNewFile();
}
RandomAccessFile ra=new RandomAccessFile(fi,"rw");
//调指针
ra.seek(fi.length());
ra.write(String.valueOf(sb.append("\n")).getBytes());
ra.close();
}
//查看模拟历史登陆
public static void landingHistory() throws IOException{
InputStream is=new FileInputStream("D:/历史登陆信息.txt");
byte[] bs=new byte[1024];
//read:读取
while(is.read(bs,0,bs.length)!=-1){
System.out.println(new String(bs));
}
is.close();
}
模拟登陆的效果图:
查看历史登陆的结果:
作者:吴耀存
撰写时间:2019-5-27