服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 基于IO版的用户登录注册实例(Java)

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

2021-01-04 16:19kamaria Java教程

下面小编就为大家带来一篇基于IO版的用户登录注册实例(Java)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

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

延伸 · 阅读

精彩推荐