码迷,mamicode.com
首页 > 编程语言 > 详细

IO版的用户登录注册案例(Java)

时间:2017-09-17 20:14:13      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:构造函数   register   login   用户登录   opened   equals   资源   name   sed   

2017-09-16

这是我在博客园的第一篇学习笔记。

Java小白,努力进阶中...

 

今天学的是用户登录注册功能。
4个包:
itcast.cn.user包 User.java 用户类,描述用户基本信息,包括成员变量,无参构造函数,带参构造(可有可无).get和set方法

 1  package itcast.cn.day22;
 2 /*
 3  * 用户基本描述包类
 4  */
 5 
 6 public class User {
 7     private int userName;
 8     private int passWord;
 9     public User(){
10         super();
11     }
12     public User(int userName,int passWord){
13         super();
14         this.userName=userName;
15         this.passWord=passWord;        
16     }
17     public int getUserName() {
18         return userName;
19     }
20     public void setUserName(int userName) {
21         this.userName = userName;
22     }
23     public int getPassWord() {
24         return passWord;
25     }
26     public void setPassWord(int passWord) {
27         this.passWord = passWord;
28     }
29 
30 }

 

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

技术分享
1 public interface UserDao { 
2 2 public abstract boolean islogin( String userName, String passWord);
3 3 public abstract void register(User user);
4 4 }
View Code

 

itcast.cn.userDaoImpl包 UserDaoImpl.java 实现UserDao接口,具体描述登录注册方法。
需要注意的是:在登录方法中,返回值boolean flag = true 即登录成功

在实现过程中需要注意的一点是:全局变量br,bw的声明一定要放在try大括号外
IO版本实现方法代码如下:

 1 public class UserDaoImpl implements UserDao{
 2 
 3 @Override
 4 public boolean islogin(String userName, String passWord) {
 5 boolean flag = false;
 6 BufferedReader br = null;
 7 try {
 8 br = new BufferedReader(new FileReader("user,txt"));
 9 String line = null;
10 
11 while((line=br.readLine())!=null){
12 String[] datas = line.split("=");
13 if(datas[0].equals(userName)&&datas[1].equals(passWord)){
14 flag = true;
15 break;
16 }
17 }
18 } 
19 catch (FileNotFoundException e) {
20 //e.printStackTrace();
21 System.out.println("用户信息获取失败");
22 }catch (IOException e) {
23 //e.printStackTrace();
24 System.out.println("用户登录失败");
25 }
26 if(br!=null){
27 try {
28 br.close();
29 } catch (IOException e) {
30 //e.printStackTrace();
31 System.out.println("用户释放资源失败");
32 }
33 }
34 return flag;
35 }
36 
37 @Override
38 public void register(User user) {
39 BufferedWriter bw = null;    
40 try {
41 bw = new BufferedWriter(new FileWriter("user.txt"));
42 bw.write(user.getUserName()+"="+user.getPassWord());
43 bw.newLine();
44 } catch (IOException e) {
45 //e.printStackTrace();
46 System.out.println("注册失败");
47 }finally{
48 if(bw!=null){
49 try {
50 bw.close();
51 } catch (IOException e) {
52 //e.printStackTrace();
53 System.out.println("注册释放资源失败");
54 }
55 }
56 }
57}
58 }

 


itcast.cn.usertest包 UserTest类 测试类

在这个类中,存在一个未解决的问题:
scanner函数无法一个一个的输入,另外构造方法中的(true)需要多看。

 1 package itcast.cn.day22;
 2 
 3 import java.util.Scanner;
 4 
 5 public class UserTest {
 6 public static void main(String[] args) {
 7 //欢迎界面
 8 while(true){
 9 UserDao ud = new UserDaoImpl();
10 System.out.println("*****欢迎进入*****");
11 System.out.println("登录请输入1");
12 System.out.println("注册请输入2");
13 System.out.println("返回请输入3");
14 
15 System.out.println("请输入你的选择:");
16 Scanner sc = new Scanner(System.in);
17 int choice = sc.nextInt();
18 switch(choice){
19 case 1:
20 System.out.println("*****登录界面*****************");
21 //Scanner sc1 = new Scanner(System.in);
22 System.out.println("请输入用户名:");
23 String userName = sc.nextLine();
24 System.out.println("请输入密码:");
25 String passWord = sc.nextLine();
26 
27 boolean flag = ud.islogin(userName, passWord);
28 if(flag){
29 System.out.println("登录成功");
30 break;
31 }else{
32 System.out.println("用户名或密码错误");
33 }
34 
35 case 2:
36 System.out.println("*****注册界面****************");
37 System.out.println("请输入用户名:");
38 String userName1 = sc.nextLine();
39 System.out.println("请输入密码:");
40 String passWord1 = sc.nextLine();
41 
42 User user = new User();
43 user.getUserName();
44 user.getPassWord();
45 ud.register(user);
46 System.out.println("注册成功");
47 break;
48 case 3:
49 default:
50 System.out.println("谢谢使用,欢迎下次再来");
51 System.exit(0);
52 break;
53 }
54 }
55 }
56 }

 

IO版的用户登录注册案例(Java)

标签:构造函数   register   login   用户登录   opened   equals   资源   name   sed   

原文地址:http://www.cnblogs.com/zhangyue201709/p/kamaria.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!