黑马程序员技术交流社区

标题: IO流综合练习03 [打印本页]

作者: _J2EE_LiXiZhen    时间: 2017-11-19 22:56
标题: IO流综合练习03
模拟用户登录和注册功能实现。
接收用户输入的用户名和密码,然后和文件中存储的用户名、密码匹配。
如果文件已经存在用户名并且密码也是正确的,提示登录成功,否则提示登录失败。
如果文件中不存在该用户名,则使用该用户名和密码注册一个新的账号,并提示注册成功。

[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;
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2