Java用io流来实现用户注册和登录功能
/*
*需求:用io流来实现用户注册和登录功能
*
*分析:
* 1.需要的类和接口
* A.用户实体类:UserEntity
* B.用户功能接口:UserDao
* C.用户功能接口实现类:UserDaoImlp
* D.用户功能测试类:UserTest注册测试类,UserTest2登录测试类
* 2.类和接口的成员
* A.用户实体类:UserEntity
* a.成员变量
* (1)姓名:private String name
* (2)密码:private String password
* b.构造方法
* (1)无参:public UserEntity()
* (2)有参:public UserEntity(String name, String password)
* c.成员方法
* (1)设值方法 set()
* (2)取值访求get()
*
* B.用户功能接口:UserDao
* a.成员方法
* (1)用户注册方法:public void registerUser(UserEntity user)
* (2)用户登录方法:public boolean isLoginUser(String name,String password);
* C.用户功能接口实现类:UserDaoImlp
* a.成员方法
* (1)用户注册方法:public void registerUser(UserEntity user)
* (2)用户登录方法:public boolean isLoginUser(String name,String password);
* D.用户功能测试类:
* a.UserTest注册测试类,
* 调用注册方法:registerUser(UserEntity user)
* b.UserTest2登录测试类
* 调用登录方法:isLoginUser(String name,String password)
* 3.类和类,类和接口之间的关系
* A.用户实体类:UserEntity,提供实体对象
* B.用户功能接口:UserDao,提供对UserEntity操作方法的接口
* C.用户功能接口实现类:UserDaoImlp,实现接口功能
* D.用户功能测试类:UserTest注册测试类,UserTest2登录测试类,测试用户功能
* 4.分包
* A.用户实体类:UserEntity:com.ma.entity.UserEntity
* B.用户功能接口:UserDao:com.ma.dao.UserDao
* C.用户功能接口实现类:UserDaoImlp:com.ma.dao.impl.UserDaoImlp
* D.用户功能测试类:UserTest注册测试类,UserTest2登录测试类:
* com.ma.test.UserTest
* com.ma.test.UserTest2
*/
A.用户实体类:UserEntity
package com.ma.entity; /** * 用户实体类 * @author ma * */ public class UserEntity { //属性 //姓名 private String name; //密码 private String password; //构造方法 public UserEntity() { super(); } public UserEntity(String name, String password) { super(); this.name = name; this.password = password; } //成员方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
B.用户功能接口:UserDao
package com.ma.dao; import com.ma.entity.UserEntity; /** * 用户功能接口 * @author ma * */ public interface UserDao { /** * 用户注册方法 * @param user 用户对象 */ public void registerUser(UserEntity user); /** * 用户登录方法 * @param name 用户名 * @param password 用户密码 * @return 成功返回true,否则返回false */ public boolean isLoginUser(String name,String password); }
C.用户功能接口实现类:UserDaoImlp
package com.ma.dao.impl; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import com.ma.dao.UserDao; import com.ma.entity.UserEntity; /** * 用户功能接口实现类 * @author ma * */ public class UserDaoImple implements UserDao{ private static final File file = new File("user_informtion/userinfo.txt"); @Override public void registerUser(UserEntity user) { //初始化输出流 BufferedWriter bw = null; //用户信息 不能为空 if(user != null){ try { //实例化输出流 bw = new BufferedWriter( new FileWriter(file,true)); //写入数据 bw.write(user.getName()+"=>"+user.getPassword()); //创建新行 bw.newLine(); //刷新数据 bw.flush(); } catch (IOException e) { //注册失败信息 System.out.println("注册失败:"+e.getMessage()); }finally{ try { bw.close(); } catch (IOException e) { System.out.println("关闭BufferedWriter输出流异常:"+e.getMessage()); } } }else{ //注册失败信息 System.out.println("注册失败:用户信息不能为空"); } } @Override public boolean isLoginUser(String name, String password) { boolean flag = false; //初始化BufferedReader BufferedReader br = null; if(!name.equals("") && !password.equals("")){ try { br = new BufferedReader(new FileReader(file)); String str = null; //循环判断 while((str = br.readLine()) != null){ String[] data = str.split("=>"); if(data[0].equals(name)&&data[1].equals(password)){ flag = true; break; } } } catch (FileNotFoundException e) { System.out.println("登录异常:"+e.getMessage()); } catch (IOException e) { System.out.println("登录异常:"+e.getMessage()); }finally{ try { br.close(); } catch (IOException e) { System.out.println("关闭BufferedReader输入流异常:"+e.getMessage()); } } }else{ System.out.println("用户名和密码不能为空"); } return flag; } }
D.1用户功能测试类:UserTest注册测试类,
package com.ma.test; import com.ma.dao.UserDao; import com.ma.dao.impl.UserDaoImple; import com.ma.entity.UserEntity; /** * 注册测试类 * @author ma * */ public class UserTest { public static void main(String[] args) { //向文件中写入数据 UserDao ud = new UserDaoImple(); UserEntity user1 = new UserEntity("李四", "123456"); UserEntity user2 = new UserEntity("张三", "abc123"); ud.registerUser(user1); ud.registerUser(user2); } }
D.2用户功能测试类:UserTest2登录测试类
package com.ma.test; import com.ma.dao.UserDao; import com.ma.dao.impl.UserDaoImple; import com.ma.entity.UserEntity; /** * 登录测试类 * @author ma * */ public class UserTest2 { public static void main(String[] args) { //向文件中写入数据 UserDao ud = new UserDaoImple(); String name = "李四"; String password = "123456"; boolean islogin = ud.isLoginUser(name, password); if(islogin){ System.out.println("登录成功!"); }else{ System.out.println("请输入正确的用户名和密码!"); } } }