登陆管理系统

登陆管理系统

  • 通过IO文件流,实现了多个用户注册登录,修改密码的基本功能,暂记录于txt文本中,并实现txt文本的删除行,替换行(思路:使用另一个txt文本暂存,通过再次读取,覆盖)

目录截图

在这里插入图片描述

UserDao具体实现层

  • 含有四个方法:分别实现登录,注册,登陆后的修改密码与注销

  • 注册

public boolean userRegin(String userName, String pwd) throws IOException {//用户注册
  boolean flag = false, tem = false;//tem用于判读那是否注册,flag用于判断是否注册成功
  BufferedReader br = new BufferedReader(new FileReader("src/Homework/HomeWork01_IO/login.txt"));
  String line = null;//io读入输出字符串
  while ((line = br.readLine()) != null) {
      if (line.equals(userName)) tem = true;
  }
  if (tem) {
      System.out.println("用户名已经注册..");
      br.close();
  } else {
      BufferedWriter bw = new BufferedWriter(new FileWriter("src/Homework/HomeWork01_IO/login.txt", true));
      Scanner scanner = new Scanner(System.in);

      System.out.println("请再确认一次你的密码...");//校验密码
      String s = scanner.nextLine();
      if (s.equals(pwd)) {//校验成功就返回真
          flag = true;
      }
      if (flag) {
          bw.write(userName + "\n");
          bw.write(pwd + "\n");
      }

      bw.close();
  }
  return flag;
}

  • 登录
public boolean userLogin(String userName, String pwd) throws IOException {//用户登录
        boolean flag = false;//用于判断是否注册成功
        BufferedReader br = new BufferedReader(new FileReader("src/Homework/HomeWork01_IO/login.txt"));
        String line = null;

        while ((line = br.readLine()) != null) {
            if (line.equals(userName) && br.readLine().equals(pwd)) flag = true;
        }

        br.close();

        if (flag) System.out.println("登录成功..");
        else System.out.println("登录失败..");
        return flag;
    }
  • 修改密码
public boolean changePwd(String userName, String oldPwd, String newPwd) throws IOException {//修改密码
  boolean flag = false;
  BufferedReader br = new BufferedReader(new FileReader("src/Homework/HomeWork01_IO/login.txt"));
  String line = null;
  Scanner scanner = new Scanner(System.in);
  StringBuilder sb = new StringBuilder();//拼接字符串
  BufferedWriter bw = new BufferedWriter(new FileWriter("src/Homework/HomeWork01_IO/login1.txt"));
  //修改密码需要一个地方暂存修改的值,通过字符串拼接
  while ((line = br.readLine()) != null) {
      if (line.equals(userName)) {
          sb.append(userName + "\n");
          line =br.readLine();
          if (line.equals(oldPwd)) {//如果校验的原来密码不正确那么就直接将拼接原来的密码
              System.out.println("请再次输入新密码确认..");
              String s = scanner.nextLine();
              if (s.trim().equals(newPwd)) {//把原来的跳过,加入新密码
                  sb.append(newPwd + "\n");
                  flag = true;
              }
          } else sb.append(line + "\n");
      }else sb.append(line+"\n");
  }

  bw.write(String.valueOf(sb));
  bw.flush();
  bw.close();
  br.close();

  //新曾两个流,分别读入修改的东西,和写入原来的地方
  BufferedReader br1 = new BufferedReader(new FileReader("src/Homework/HomeWork01_IO/login1.txt"));
  BufferedWriter bw1 = new BufferedWriter(new FileWriter("src/Homework/HomeWork01_IO/login.txt"));
  String line1 = null;
  while ((line1 = br1.readLine()) != null) {
      bw1.write(line1 + "\n");
  }
  bw1.flush();
  bw1.close();
  br1.close();

  return flag;
}
  • 注销
public boolean withDraw(String userName) throws IOException {//用户注销
    boolean flag = false;
    Scanner scanner = new Scanner(System.in);
    StringBuilder sb = new StringBuilder();
    System.out.println("请确认是否要注销你的用户Y/N");


    BufferedReader br = new BufferedReader(new FileReader("src/Homework/HomeWork01_IO/login.txt"));
    BufferedWriter bw = new BufferedWriter(new FileWriter("src/Homework/HomeWork01_IO/login1.txt"));

    if (scanner.next().toUpperCase().charAt(0) == 'Y') {//如果输入y就删除
        String line = null;
        while ((line = br.readLine()) != null) {
            if (line.equals(userName)) {//还是通过拼接字符串
                br.readLine();//上面是用户名,直接跳过密码
                continue;
            } else sb.append(line + "\n");
        }
        flag = true;
        System.out.println("删除成功..");
    } else {
        System.out.println("你已取消注销..");
    }
    bw.write(String.valueOf(sb));
    bw.flush();
    br.close();
    bw.close();


    BufferedReader br1 = new BufferedReader(new FileReader("src/Homework/HomeWork01_IO/login1.txt"));
    BufferedWriter bw1 = new BufferedWriter(new FileWriter("src/Homework/HomeWork01_IO/login.txt"));
    String line1 = null;
    while ((line1 = br1.readLine()) != null) {
        bw1.write(line1 + "\n");
    }
    bw1.flush();
    bw1.close();
    br1.close();

    return flag;
}

UsersServlet调用层

public class UsersServlet {
    public static void main(String[] args) throws IOException {
        UsersServlet usersServlet = new UsersServlet();
        usersServlet.show();
    }

    public void show() throws IOException {
        boolean tem1 = true, tem2 = true;
        UserDao user = new UserDao();
        while (tem1) {
            System.out.println("---登陆管理系统---");
            System.out.println("请选择登录/注册");
            System.out.println("1.登录..\t2.注册..\t3.退出..");
            Scanner scanner = new Scanner(System.in);
            int t1 = scanner.nextInt();


            switch (t1) {
                case 1: {
                    System.out.println("请输入你的用户名");
                    String userName = scanner.next();
                    System.out.println("请输入你的密码");
                    String pwd = scanner.next();
                    boolean flag = user.userLogin(userName, pwd);
                    if (flag) {
                        tem2 =true;
                        while (tem2) {
                            System.out.println("登录成功,你可以选择你的操作\t1.修改密码\t2.注销\t3.返回上一层");
                            int t2 = scanner.nextInt();
                            switch (t2) {
                                case 1: {
                                    System.out.println("请输入你的原密码..");
                                    String oldPwd = scanner.next();
                                    System.out.println("请输入你的新密码..");
                                    String newPwd = scanner.next();
                                    boolean flag02 = user.changePwd(userName, oldPwd, newPwd);
                                    if (flag02) System.out.println("修改密码成功");
                                    else System.out.println("修改失败..");
                                    break;
                                }
                                case 2: {
                                    boolean b = user.withDraw(userName);
                                    if (b) System.out.println("真的要离开了哦..");
                                    tem2 = false;
                                    break;
                                }
                                case 3: {
                                    tem2 = false;
                                    break;
                                }
                            }
                        }
                    }
                    break;
                }
                case 2: {
                    System.out.println("请输入你的用户名");
                    String userName = scanner.next();
                    System.out.println("请输入你的密码");
                    String pwd = scanner.next();
                    boolean flag = user.userRegin(userName, pwd);
                    if (!flag) System.out.println("注册失败");
                    else System.out.println("恭喜你,注册成功..");
                    break;
                }
                case 3: {
                    tem1 = false;
                    break;
                }
            }
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值