4个包:
itcast.cn.user包 User.java 用户类,描述用户基本信息,包括成员变量,无参构造函数,带参构造(可有可无).get和set方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
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 定义一个接口,声明登录注册功能
1
2
3
4
|
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版本实现方法代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
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)需要多看。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/zhangyue201709/archive/2017/09/17/kamaria.html