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("请输入正确的用户名和密码!");
		}
	}
	

}

  

猜你喜欢

转载自www.cnblogs.com/majingang/p/9051394.html