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("請輸入正確的用戶名和密碼!");
		}
	}
	

}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM