基于IO版的用户登录注册实例(Java)

时间:2021-05-19

今天学的是用户登录注册功能。

4个包:

itcast.cn.user包 User.java 用户类,描述用户基本信息,包括成员变量,无参构造函数,带参构造(可有可无).get和set方法

package itcast.cn.day22;/* * 用户基本描述包类 */public class User { private int userName; private int passWord; public User(){ super(); } public User(int userName,int passWord){ super(); this.userName=userName; this.passWord=passWord; } public int getUserName() { return userName; } public void setUserName(int userName) { this.userName = userName; } public int getPassWord() { return passWord; } public void setPassWord(int passWord) { this.passWord = passWord; }}

tcast.cn.uerDao包 UserDao.java 定义一个接口,声明登录注册功能

public interface UserDao { 2 public abstract boolean islogin( String userName, String passWord); 3 public abstract void register(User user); 4 }

itcast.cn.userDaoImpl包 UserDaoImpl.java 实现UserDao接口,具体描述登录注册方法。

需要注意的是:在登录方法中,返回值boolean flag = true 即登录成功

在实现过程中需要注意的一点是:全局变量br,bw的声明一定要放在try大括号外

IO版本实现方法代码如下:

public class UserDaoImpl implements UserDao{@Overridepublic boolean islogin(String userName, String passWord) {boolean flag = false;BufferedReader br = null;try {br = new BufferedReader(new FileReader("user,txt"));String line = null;while((line=br.readLine())!=null){String[] datas = line.split("=");if(datas[0].equals(userName)&&datas[1].equals(passWord)){flag = true;break;}}} catch (FileNotFoundException e) {//e.printStackTrace();System.out.println("用户信息获取失败");}catch (IOException e) {//e.printStackTrace();System.out.println("用户登录失败");}if(br!=null){try {br.close();} catch (IOException e) {//e.printStackTrace();System.out.println("用户释放资源失败");}}return flag;}@Overridepublic void register(User user) {BufferedWriter bw = null; try {bw = new BufferedWriter(new FileWriter("user.txt"));bw.write(user.getUserName()+"="+user.getPassWord());bw.newLine();} catch (IOException e) {//e.printStackTrace();System.out.println("注册失败");}finally{if(bw!=null){try {bw.close();} catch (IOException e) {//e.printStackTrace();System.out.println("注册释放资源失败");}}}57}}

itcast.cn.usertest包 UserTest类 测试类

在这个类中,存在一个未解决的问题:

scanner函数无法一个一个的输入,另外构造方法中的(true)需要多看。

package itcast.cn.day22;import java.util.Scanner;public class UserTest {public static void main(String[] args) {//欢迎界面while(true){UserDao ud = new UserDaoImpl();System.out.println("*****欢迎进入*****");System.out.println("登录请输入1");System.out.println("注册请输入2");System.out.println("返回请输入3");System.out.println("请输入你的选择:");Scanner sc = new Scanner(System.in);int choice = sc.nextInt();switch(choice){case 1:System.out.println("*****登录界面*****************");//Scanner sc1 = new Scanner(System.in);System.out.println("请输入用户名:");String userName = sc.nextLine();System.out.println("请输入密码:");String passWord = sc.nextLine();boolean flag = ud.islogin(userName, passWord);if(flag){System.out.println("登录成功");break;}else{System.out.println("用户名或密码错误");}case 2:System.out.println("*****注册界面****************");System.out.println("请输入用户名:");String userName1 = sc.nextLine();System.out.println("请输入密码:");String passWord1 = sc.nextLine();User user = new User();user.getUserName();user.getPassWord();ud.register(user);System.out.println("注册成功");break;case 3:default:System.out.println("谢谢使用,欢迎下次再来");System.exit(0);break;}}}}

以上这篇基于IO版的用户登录注册实例(Java)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章