用java写一个登录与注册程序,读写的文件以json形式保存在本地
时间: 2024-03-16 17:46:31 浏览: 23
好的,这个问题我可以回答。下面是一个简单的Java登录与注册程序,我们将使用JSON文件来保存用户信息。
首先,我们需要创建一个名为 "User" 的类,该类将保存用户的用户名和密码信息。
```java
import java.io.Serializable;
public class User implements Serializable {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
```
接下来,我们创建一个名为 "UserManager" 的类,该类将负责读取和写入用户信息的JSON文件,并提供注册和登录方法。
```java
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class UserManager {
private static final String FILENAME = "users.json";
private List<User> users;
public UserManager() {
// 从文件读取用户信息
try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) {
Gson gson = new Gson();
users = gson.fromJson(br, new TypeToken<List<User>>(){}.getType());
} catch (FileNotFoundException e) {
users = new ArrayList<>();
} catch (IOException e) {
e.printStackTrace();
}
}
public boolean register(String username, String password) {
// 检查用户名是否已存在
for (User user : users) {
if (user.getUsername().equals(username)) {
return false;
}
}
// 添加新用户
User newUser = new User(username, password);
users.add(newUser);
// 保存用户信息到文件
try (BufferedWriter bw = new BufferedWriter(new FileWriter(FILENAME))) {
Gson gson = new Gson();
gson.toJson(users, bw);
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
public boolean login(String username, String password) {
// 检查用户名和密码是否匹配
for (User user : users) {
if (user.getUsername().equals(username) && user.getPassword().equals(password)) {
return true;
}
}
return false;
}
}
```
现在我们已经完成了登录和注册的核心逻辑,接下来我们编写一个简单的控制台应用程序来测试它们。
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
UserManager userManager = new UserManager();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 注册");
System.out.println("2. 登录");
System.out.println("3. 退出");
int choice = scanner.nextInt();
scanner.nextLine(); // 读取换行符
switch (choice) {
case 1:
System.out.print("请输入用户名:");
String username = scanner.nextLine();
System.out.print("请输入密码:");
String password = scanner.nextLine();
if (userManager.register(username, password)) {
System.out.println("注册成功!");
} else {
System.out.println("用户名已存在!");
}
break;
case 2:
System.out.print("请输入用户名:");
username = scanner.nextLine();
System.out.print("请输入密码:");
password = scanner.nextLine();
if (userManager.login(username, password)) {
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码错误!");
}
break;
case 3:
System.out.println("退出程序!");
System.exit(0);
break;
default:
System.out.println("输入错误,请重新输入!");
break;
}
}
}
}
```
现在,当您运行此应用程序时,您将能够注册新用户,登录并检查用户名和密码是否正确。注册和登录信息将被保存在名为 "users.json" 的JSON文件中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)