用户操作的接口类
public interface UserDao {
/**
* 这是用户登录功能
*
* @param username
* 登录的用户名
* @param password
* 登录的用户密码
* @return 返回的是用户是否成功,true,成功;false,失败
*/
public abstract boolean isLogin(String username, String password);
/**
* 这是用户注册功能
*
* @param user
* 需要注册的用户
*/
public abstract void register(User user);
}
用户操作的接口的实现类
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class UserDaoImpl implements UserDao {
private static File file = new File("user.txt");
static {
if (file != null) {
try {
file.createNewFile();
} catch (IOException e) {
System.out.println("创建文件失败...");
}
}
}
@Override
public boolean isLogin(String username, String password) {
boolean flag = false;
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
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) {
System.out.println("找不到文件");
} catch (IOException e) {
System.out.println("登录失败");
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
System.out.println("登录时释放资源失败");
}
}
}
return flag;
}
@Override
public void register(User user) {
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(file, true));
bw.write(user.getUsername() + "=" + user.getPassword());
bw.newLine();
bw.flush();
} catch (IOException e) {
System.out.println("用户注册失败...");
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
System.out.println("注册时释放的资源失败");
}
}
}
}
}
用户实体类
public class User {
private String username;
private String password;
public User() {
super();
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
用户登录注册的测试类
import java.util.Scanner;
public class UserTest {
public static void main(String[] args) {
while (true) {
System.out.println("请输入您的选择:");
System.out.println("1 登录");
System.out.println("2 注册");
System.out.println("3 退出");
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
String choice = sc.nextLine();
UserDao ud = new UserDaoImpl();
switch (choice) {
case "1":
System.out.println("登陆:");
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("恭喜您,登录成功");
System.exit(0);
} else {
System.out.println("用户名或者密码输入错误");
}
break;
case "2":
System.out.println("注册:");
System.out.println("请输入用户名:");
String newUserName = sc.nextLine();
System.out.println("请输入密码:");
String newPwd = sc.nextLine();
User user = new User();
user.setUsername(newUserName);
user.setPassword(newPwd);
ud.register(user);
System.out.println("注册成功...");
break;
case "3":
System.out.println("谢谢使用,下次再来");
System.exit(0);
default:
System.out.println("输入有误请重试");
break;
}
}
}
}
测试结果
请输入您的选择:
1 登录
2 注册
3 退出
a
输入有误请重试
请输入您的选择:
1 登录
2 注册
3 退出
2
注册:
请输入用户名:
aaa
请输入密码:
sss
注册成功...
请输入您的选择:
1 登录
2 注册
3 退出
1
登陆:
请输入用户名:
aaa
请输入密码:
sss
恭喜您,登录成功