IO流实例:用户登录系统

一、创建项目及文件:

创建如图文件夹及文件:

在这里插入图片描述

二、编写源码

UserDao类:

public class UserDao {
    //用户的注册
    public boolean userRegister(String username, String psw) {
        boolean rts=false;
        String name="";
        BufferedWriter bw = null;
        BufferedReader br = null;
        try {//判断注册的用户名是否存在,不存在则使rts==true
            br = new BufferedReader(new FileReader("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
            if((name=br.readLine())==null||(!name.equals(username))){
                rts = true;
            }
            //如果rts==ture,则将传入的参数写入文档中作为用户名和密码
            if(rts){
                bw = new BufferedWriter(new FileWriter("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
                bw.write(username);
                bw.newLine();
                bw.write(psw);
                bw.flush();
                bw.close();
            }
            br.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return rts;
    }

    //用户登录
    public boolean userLogin(String username, String psw) {
        boolean rst = false;
        BufferedReader br = null;
        try {//判断输入的用户名和密码是否与文档中注册的用户名密码同时相同
            br=new BufferedReader(new FileReader("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
            if (br.readLine().equals(username)&&br.readLine().equals(psw)){
                rst=true;
            }
            br.close();
        }catch (Exception e){
            e.printStackTrace();
        }
        return rst;
    }

    //修改密码
    public boolean changePsw(String oldPsw, String newPsw) {
        boolean rts=false;
        String name;
        String psw;
        BufferedWriter bw = null;
        BufferedReader br = null;
        try {//先把原用户名和密码记录下来
            br = new BufferedReader(new FileReader("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
            name=br.readLine();
            psw=br.readLine();
            //比对输入的旧密码和文档中旧密码是否相同,相同则将上面记录的用户名和输入的新密码写入文档
            if(psw.equals(oldPsw)){
                rts=true;
                bw = new BufferedWriter(new FileWriter("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
                bw.write(name);
                bw.newLine();
                bw.write(newPsw);
                bw.flush();
                bw.close();
            }
            br.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return rts;
    }

    //注销
    public boolean withdraw() {
        boolean rts=false;
        BufferedWriter bw= null;
        BufferedReader br=null;
        String s = "";
        try {//写入一个空串覆盖原用户名和密码
            bw = new BufferedWriter(new FileWriter("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
            br = new BufferedReader(new FileReader("C:\\Users\\86131\\Desktop\\JavaSE\\code\\User Login\\src\\user.txt"));
            bw.write(s);
            bw.flush();
            //判断文档中是否还有数据,没有则rts=ture
            if (br.readLine()==null) {
                rts=true;
            }
            br.close();
            bw.close();
        }catch (Exception e){
            e.printStackTrace();
        }
        return rts;
    }
}

UserServlet类:

public class UserServlet {
        public static void main(String[] args) {
            UserServlet userServlet = new UserServlet();
            String mode;
            //通过mode记录当前操作状态,调用操作选择方法选择操作
            mode = userServlet.select(userServlet);
         
        }
        //选择功能交互模块
        public String select(UserServlet userServlet){
            String mode;
            Scanner scanner = new Scanner(System.in);
            System.out.println("请选择功能:注册 登录 修改密码 注销");
            //通过输入的文字选择调用不同的操作方法
            mode=scanner.nextLine();
            switch (mode){
                case "注册":userServlet.register();
                    break;
                case "登录":userServlet.login();
                    break;
                case "修改密码":userServlet.changePsw();
                    break;
                case "注销":userServlet.withdraw();
                    break;
                default:
                    System.out.println("无此操作!");
            }
            return mode;
        }
        //注册交互模块
        public boolean login(){
            UserDao userDao = new UserDao();
            Scanner scanner = new Scanner(System.in);
            boolean rts=false;
            String username;
            String psw;
            //人机交互并调用Dao类方法读写数据
            System.out.println("请输入用户名:");
            username = "username="+scanner.nextLine();
            System.out.println("请输入密码:");
            psw = "psw="+scanner.nextLine();
            rts = userDao.userLogin(username,psw);
            if(rts){
                System.out.println("登录成功!");
            }else {
                System.out.println("用户名或密码错误!");
            }
            return false;
        }
        //登录交互模块
        public boolean register(){
            UserDao userDao = new UserDao();
            Scanner scanner = new Scanner(System.in);
            boolean rts=false;
            String username;
            String psw;
            //人机交互并调用Dao类方法读写数据
            System.out.println("请输入用户名:");
            username = "username="+scanner.nextLine();
            System.out.println("请输入密码:");
            psw = "psw="+scanner.nextLine();
            rts = userDao.userRegister(username,psw);
            if(rts){
                System.out.println("注册成功!");
            }else {
                System.out.println("用户名重复,注册失败!");
            }
            return rts;
        }
        //修改密码交互模块
        public boolean changePsw(){
            UserDao userDao = new UserDao();
            Scanner scanner = new Scanner(System.in);
            boolean rts=false;
            String oldpsw;
            String newpsw;
            //人机交互并调用Dao类方法读写数据
            System.out.println("请输入旧密码:");
            oldpsw = "psw="+scanner.nextLine();
            System.out.println("请输入新密码:");
            newpsw = "psw="+scanner.nextLine();
            rts = userDao.changePsw(oldpsw,newpsw);
            if(rts){
                System.out.println("修改成功!");
            }else {
                System.out.println("原密码错误!");
            }
            return rts;
        }
        //注销账户交互模块
        public boolean withdraw(){
            boolean rts=false;
            UserDao userDao = new UserDao();
            if(userDao.withdraw()){
                System.out.println("注销成功!");
            }else {
                System.out.println("注销失败!");
            }

            return rts;
        }
}

三、操作演示

  1. 注册

    1. 注册成功

在这里插入图片描述

  1. 注册失败
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7787d59f58944765a57009ece7c52a96.png#pic_center)
  1. 登录

    1. 登录成功

      在这里插入图片描述

    2. 登录失败

    在这里插入图片描述

  2. 修改密码

    1. 修改密码成功

      在这里插入图片描述

    2. 修改密码失败

      在这里插入图片描述

  3. 注销

    在这里插入图片描述

四、视频演示

登录系统演示

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值