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

网友投稿 274 2023-04-03


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

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

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 islodytvgvgin( 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{

@Override

public 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;

}

@Override

public 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;

}

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:新手vue构建单页面应用实例代码
下一篇:angular指令笔记ng
相关文章

 发表评论

暂时没有评论,来抢沙发吧~