【Java学习笔记】19.登录和注册案例(IO流实现)

来源:互联网 发布:淘宝登录会员名怎么改 编辑:程序博客网 时间:2024/06/08 16:34

1.User用户类

package com.edu.domain;public class User {    private String userName;    private String passWord;    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getPassWord() {        return passWord;    }    public void setPassWoed(String passWord) {        this.passWord = passWord;    }    public User(String userName, String passWord) {        super();        this.userName = userName;        this.passWord = passWord;    }    public User() {        super();        // TODO Auto-generated constructor stub    }}

2.UserDao接口

package com.edu.dao;import java.io.IOException;import com.edu.domain.User;public interface UserDao {    //定义两个功能    //注册功能    public abstract void regist(User user) throws IOException;    //登录功能    public abstract boolean isLogin(String userName,String passWord);}

3.UserDaoImpl接口实现类

package com.edu.dao.impl;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import com.edu.dao.UserDao;import com.edu.domain.User;public class UserDaoImpl implements UserDao{    public static File file = new File("user.txt");    //静态代码块,随着类的加载而加载    static{        try{            file.createNewFile();        }catch(IOException e){            e.printStackTrace();        }    }    //注册功能    @Override    public void regist(User user) throws IOException {        try{            //把用户信息存进文件里            String info=user.getUserName()+"="+user.getPassWord();            //创建高效字符输出流来给文件写入数据,创建了一个可以追加写入的FileWriter,避免了文件中之前的用户信息被覆盖            BufferedWriter bw = new BufferedWriter(new FileWriter("user.txt",true));            bw.write(info);            bw.newLine();            bw.flush();            bw.close();        }catch(IOException e){            e.printStackTrace();        }    }    //登录功能    @Override    public boolean isLogin(String userName, String passWord) {        boolean flag=false;        try{            //创建高效字符输入流来读取数据            BufferedReader br = new BufferedReader(new FileReader("user.txt"));            String line;            while ((line=br.readLine())!=null) {                String[] s=line.split("=");                if (s[0].equals(userName)&&s[1].equals(passWord)) {                    flag=true;                }            }        }catch(IOException e){            e.printStackTrace();        }        return flag;    }}

4。Test测试类

package com.edu.test;import java.io.IOException;import java.util.Scanner;import com.edu.dao.impl.UserDaoImpl;import com.edu.domain.User;import com.edu.game.GuessNumber;public class Test {    public static void main(String[] args) throws IOException {        while (true) {            //创建键盘录入对象,获取键盘录入信息            Scanner sc = new Scanner(System.in);            System.out.println("欢迎来到注册登录界面!");            System.out.println("1.注册");            System.out.println("2.登录");            System.out.println("3.退出");            String choice = sc.nextLine();            //创建一个用户操作类            UserDaoImpl udi = new UserDaoImpl();            //利用switch循环对选择进行操作            switch(choice){            case "1":                System.out.println("欢迎来到注册界面!");                System.out.println("请输入用户名:");                String userName = sc.nextLine();                System.out.println("请输入密码:");                String passWord = sc.nextLine();                User user = new User(userName,passWord);                udi.regist(user);                System.out.println("注册成功!");                break;            case "2":                System.out.println("欢迎来到登录界面!");                System.out.println("请输入用户名:");                String inputUserName = sc.nextLine();                System.out.println("请输入密码:");                String InputPassWord = sc.nextLine();                if (udi.isLogin(inputUserName,InputPassWord)) {                    System.out.println("登陆成功!可以玩游戏了!");                    GuessNumber.playGame();                }else{                    System.out.println("登录失败!");                }                break;            case "3":            default:                //对于3或者其他数字的选择,都直接退出系统                System.exit(0);                break;            }        }    }}

5.运行结果
这里写图片描述

原创粉丝点击