模拟用户登录和注册功能实现。
接收用户输入的用户名和密码,然后和文件中存储的用户名、密码匹配。
如果文件已经存在用户名并且密码也是正确的,提示登录成功,否则提示登录失败。
如果文件中不存在该用户名,则使用该用户名和密码注册一个新的账号,并提示注册成功。
[Java] 纯文本查看 复制代码 public class Test01 {
public static void main(String[] args) throws IOException {
jieMian();
}
// 主界面
public static void jieMian() throws IOException {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入操作指令:1.登录 2.注册 3.退出");
String order = sc.nextLine();
int temp;
try {
temp = Integer.parseInt(order);
} catch (RuntimeException e) {
System.out.println("操作有误,请重新输入");
continue;
}
//登录方法
if(temp == 1) {
dengLu(getMessage());
}
//注册方法
else if(temp==2) {
login(getMessage());
}
//退出
else if(temp==3)
break;
else
System.out.println("操作有误,请重新输入");
}
}
//登录方法
public static void dengLu(HashMap<String,String> map) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String userName = sc.next();
System.out.println("请输入密码:");
String passWord = sc.next();
//判断是否存在该用户
if(map.containsKey(userName)) {
//判断密码是否正确
if(passWord.equals(map.get(userName))) {
System.out.println("登录成功");
}else {
System.out.println("密码错误");
}
}else {
System.out.println("该用户不存在");
}
}
//注册方法
public static void login(HashMap<String,String> map) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String userName = sc.next();
System.out.println("请输入密码:");
String passWord = sc.next();
//判断是否存在该用户
if(map.containsKey(userName)) {
System.out.println("该用户已经存在");
}else {
BufferedWriter bw = new BufferedWriter(new FileWriter("user.txt", true));
StringBuilder builder = new StringBuilder();
builder.append(userName).append("-").append(passWord);
bw.write(builder.toString());
bw.newLine();
bw.close();
System.out.println("注册成功");
}
}
//获取用户信息集合方法
public static HashMap<String,String> getMessage() throws IOException {
HashMap<String,String> map = new HashMap<String,String>();
BufferedReader br = new BufferedReader(new FileReader("user.txt"));
String line;
while((line = br.readLine())!=null) {
String[] arr = line.split("-");
map.put(arr[0], arr[1]);
}
br.close();
return map;
}
}
|