一、简介
本篇博客介绍了如何使用 Java 的 Properties 工具类实现一个简单的登录系统,该系统可以实现用户的登录和注册功能,并利用 Properties 文件保存账户信息。这是一个简单的Java登录系统,通过命令行界面实现。用户可以选择登录、注册或退出系统,登录时需要输入账号和密码进行验证,注册时需要输入新的账号和密码并将其保存到账号密码保存的文本中。
二、系统的实现
首先随便建个文本文档如下:
这个文本用来保存注册的账号密码。
完整代码如下:
import java.io.*;
import java.util.Properties;
import java.util.Scanner;
public class Kaishi {
private static final String ACCOUNTS_FILE_PATH = "D:\\Account.txt";
public void Dengluduan(){
Properties accounts = loadAccounts();
System.out.println("欢迎使用登录系统");
System.out.println("欢迎进入商品购买系统");
System.out.println("输入数字1进入登录界面");
System.out.println("输入数字2进入注册界面");
System.out.println("输入数字3退出系统");
System.out.println("请输入你的数字");
Scanner scanner = new Scanner(System.in);
int shuzi = scanner.nextInt();
scanner.nextLine(); // 消费掉换行符
if (shuzi == 1) {
login(accounts);
} else if (shuzi == 2) {
register(accounts);
login(accounts);
} else if (shuzi == 3) {
System.out.println("欢迎下次再来!");
System.exit(0);
} else {
System.out.println("您的数字输入错误,请重新开始。");
System.exit(0);
}
}
private static Properties loadAccounts() {
Properties accounts = new Properties();
try {
FileInputStream fileInputStream = new FileInputStream(ACCOUNTS_FILE_PATH);
accounts.load(fileInputStream);
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return accounts;
}
private static void login(Properties accounts) {
Scanner scanner=new Scanner(System.in);
System.out.print("请输入用户名:");
String username = scanner.nextLine();
if (!accounts.containsKey(username)) {
System.out.println("用户名不存在,请重新输入。");
return;
}
System.out.print("请输入密码:");
String password = scanner.nextLine();
if (yanzheng(accounts, username, password)) {
System.out.println("登录成功!");
return;
} else {
System.out.println("登录失败,密码错误。");
System.out.println("输入 '9' 退出登录,或按任意键继续");
String choice = scanner.next();
if (choice.equals("9")) {
System.exit(0);
} else {
login(accounts);
}
}
}
private static void register(Properties accounts) {
Scanner scanner=new Scanner(System.in);
System.out.println("欢迎进入注册界面");
System.out.println("输入 '9' 退出注册,或按任意键继续");
String choice = scanner.nextLine();
if (choice.equals("9")) {
System.exit(0);
} else {
System.out.print("请输入用户名:");
String username = scanner.nextLine();
if (accounts.containsKey(username)) {
System.out.println("用户名已存在,请重新输入。");
return;
}
System.out.print("请输入密码:");
String password = scanner.nextLine();
accounts.setProperty(username, password);
saveAccounts(accounts);
System.out.println("恭喜你注册成功!");
}
}
private static boolean yanzheng(Properties accounts, String username, String password) {
String storedPassword = accounts.getProperty(username);
return storedPassword != null && storedPassword.equals(password);
}
private static void saveAccounts(Properties accounts) {
try {
FileOutputStream fileOutputStream = new FileOutputStream(ACCOUNTS_FILE_PATH);
accounts.store(fileOutputStream, null);
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
注册成功后会保存到刚才那个文档,如图:
三、代码解析
这段代码用Properties工具类实现了一个能保存的简单的登录系统和注册界面,其中包括了以下功能:
1、用户可以选择进入登录界面或注册界面。
2、在登录界面,用户需要输入用户名和密码进行登录验证。
3、在注册界面,用户需要输入用户名和密码进行新用户注册。
4、用户名和密码会被保存在一个属性文件中。
5、用户登录时会进行用户名和密码的验证,如果验证成功则登录成功,否则登录失败。
6、注册成功后会将用户名和密码保存到属性文件中。
7、使用文件输入/输出流进行读写操作。
该代码没有对密码进行加密处理,因此密码以明文形式保存在属性文件中。为了增加安全性,建议还可以对密码进行加密处理,确保密码的安全性。
四、总结
本篇博客介绍了如何使用Java编程语言中的Properties工具类实现一个简单的登录系统和注册界面。该系统可以满足基本的用户登录和注册需求,并提供了一种简单的方式来管理用户账户信息。开发者可以根据实际需求对代码进行扩展和优化,以适应更复杂的应用场景。
希望这篇博客对你有所帮助!如果有任何问题或需要进一步的解释,请随时提问。