-
创建本地文件, 写入几个用户名密码,以"," 分割
-
模拟登录, 启动系统, 提示请您输入用户名密码, 如果成功,提示登录成功,
-
如果用户名不存在,提示用户注册, 输入 y 进入注册, 请用户输入用户名密码,对比本地文件,如果用户名不重复则注册成功,否则提示失败,并重新注册
-
如果是密码错误,提示用户重置密码, 输入y, 进入修改密, 两次密码一致, 表示修改成功,并保存到本地文件
因为map集合不可以存重复的键,刚好可以将用户名作为键,密码作为值.修改密码时刚好可以把原键值对覆盖
最后可以遍历集合将元素保存到本地文件
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
public class Test {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader("user"));
HashMap<String, String> map = new HashMap<>();
String str;
while((str=br.readLine())!=null){
map.put(str.split(",")[0], str.split(",")[1]);
}
br.close();
Scanner sc = new Scanner(System.in);
while(true){
System.out.println("请输入用户名和密码");
System.out.println("用户名:");
String username = sc.next();
//注册账号
if(!map.containsKey(username)){
System.out.println("用户名不存在,Y注册N停止其他继续");
String pd = sc.next();
if("n".equals(pd)||"N".equals(pd)){
return;
}else if("y".equals(pd)||"Y".equals(pd)){
w:while(true){
System.out.println("开始注册账号");
System.out.println("请输入用户名:");
username = sc.next();
System.out.println("请输入密码");
String password = sc.next();
if(map.containsKey(username)){
System.out.println("用户名已存在,请重新注册");
continue w;
}else{
map.put(username, password);
System.out.println("注册成功");
Set<String> set = map.keySet();
BufferedWriter bw = new BufferedWriter(new FileWriter("user"));
for(String st : set){
bw.write(st);
bw.write(",");
bw.write(map.get(st));
bw.newLine();
}
bw.close();
return;
}
}
}
}
//修改密码
else{
System.out.println("请输入密码");
String password = sc.next();
if(map.get(username).equals(password)){
System.out.println("登陆成功");
return;
}else{
System.out.println("是否修改密码,y修改密码其他停止");
String mm = sc.next();
m: while(true){
if("y".equals(mm)||"Y".equals(mm)){
System.out.println("输入修改后的密码");
String mm1 =sc.next();
System.out.println("请再输入一次密码");
String mm2 =sc.next();
if(mm1.equals(mm2)){
map.put(username, mm1);
System.out.println("密码修改成功");
Set<String> set = map.keySet();
BufferedWriter bw = new BufferedWriter(new FileWriter("user"));
for(String st : set){
bw.write(st);
bw.write(",");
bw.write(map.get(st));
bw.newLine();
}
bw.close();
return;
}else{
System.out.println("密码不一致,请重新修改密码");
continue m;
}
}
}
}
}
}
}
}