JAVA-14.2-登录注册案例分析(IO流版)

来源:互联网 发布:深圳淘宝摄影 编辑:程序博客网 时间:2024/05/22 06:19

和之前的登录注册案例分析(集合版)类似,基本思想完全一样(可参见http://blog.csdn.net/qq_30718113/article/details/71120739),无需大的改动,主要修改com.edu.dao.impl下的UserDaoImpl,
java中的分包:
  com.edu.domain — 标准的java描述类
  com.edu.dao – 存放的是接口
  com.edu.dao.impl – 存放的是接口实现类
  com.edu.util – 对对象进行操作的工具类
  com.edu.test – 测试类
代码如下:
①com.edu.domain — 标准的java描述类

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 setPassword(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    }}

②com.edu.dao – 存放的是接口

package com.edu.dao;import com.edu.domain.User;public interface UserDao {    //定义两个方法,一个登陆,一个注册    public abstract void regist(User user);    public abstract boolean isLogin(String userName,String password);}

③com.edu.dao.impl – 存放的是接口实现类

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{    private static File file = new File("user.txt");    //静态代码块:随着类的加载而加载    static{        //创建文件        try {            file.createNewFile();        } catch (IOException e) {            e.printStackTrace();        }    }    @Override    public void regist(User user) {        try {            //取出user对象中的用户名和密码,存入user.txt对象            String info = user.getUserName()+"="+user.getPassword();            BufferedWriter bw = new BufferedWriter(new FileWriter(file,true));//创建了一个可以追加写入的FileWriter            //往文件中写入数据            bw.write(info);            bw.newLine();            bw.flush();            bw.close();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    @Override    public boolean isLogin(String userName, String password) {        /**         * 1.创建字符高效流对象,关联user.txt         * 2.一次读取一行         * 3.将读取到的内容切割         * 4.和前台传递过来的用户名和密码进行对比,成功则改变flag的标示         */        boolean flag = false;        try {            BufferedReader br = new BufferedReader(new FileReader(file));            String line;            while ((line = br.readLine())!=null) {                String[] strings = line.split("=");                if (userName.equals(strings[0])&&password.equals(strings[1])) {                    //改变标示                    flag = true;                }            }        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return flag;    }   }

④com.edu.test – 测试类

package com.edu.test;import java.util.Scanner;import com.edu.dao.impl.UserDaoImpl;import com.edu.domain.User;public class Test {    public static void main(String[] args) {        UserDaoImpl udi = new UserDaoImpl();        while (true) {            System.out.println("-----欢迎来到登陆注册页面------");            System.out.println("1:注册");            System.out.println("2:登陆");            System.out.println("3:退出");            Scanner sc = new Scanner(System.in);            String chioce = sc.nextLine();            switch (chioce) {            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();                boolean login = udi.isLogin(inputUserName, inputPassword);                if (login) {                    System.out.println("登陆成功");                }else {                    System.out.println("登录失败");                }                break;            case "3":            default:                System.exit(0);                break;            }        }    }}
原创粉丝点击