做一个简单存钱取钱的存储功能模块。思路如下:
1、数据初始化:当启动main函数的时候,从文本获取初始数据(如:编号,姓名,银行余额等),放入集合里(如:list、map等)。
2、用户可以根据自己的信息在集合查到自己的记录,然后进行存钱取钱操作。
3、当退出的时候,把集合里的信息都反写保存到文本
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) throws IOException {
// 创建字符缓冲输入流对象
BufferedReader br = new BufferedReader(new FileReader("F:\\银行.txt"));
// 创建集合存储用户信息
List<Map<String, String>> userList = new ArrayList<>();
// 读取文本文件数据并存储到集合中
String line;
while ((line = br.readLine()) != null) {
String[] userInfo = line.split(" ");
Map<String, String> userMap = new HashMap<>();
userMap.put("编号", userInfo[0]);
userMap.put("姓名", userInfo[1]);
userMap.put("性别", userInfo[2]);
userMap.put("银行余额", userInfo[3]);
userList.add(userMap);
}
// 释放资源
br.close();
// 显示用户信息
for (Map<String, String> user : userList) {
System.out.println(user);
}
// 根据用户输入进行存钱取钱操作
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要进行操作的用户编号:");
String userInput = scanner.nextLine();
Map<String, String> selectedUser = null;
for (Map<String, String> user : userList) {
if (user.get("编号").equals(userInput)) {
selectedUser = user;
break;
}
}
if (selectedUser != null) {
System.out.println("当前用户信息:" + selectedUser);
System.out.println("1. 存钱");
System.out.println("2. 取钱");
System.out.print("请选择操作类型(1或2):");
int action = scanner.nextInt();
if (action == 1) {
System.out.print("请输入存入金额:");
int depositAmount = scanner.nextInt();
int currentBalance = Integer.parseInt(selectedUser.get("银行余额"));
int newBalance = currentBalance + depositAmount;
selectedUser.put("银行余额", String.valueOf(newBalance));
System.out.println("存钱成功!");
} else if (action == 2) {
System.out.print("请输入取出金额:");
int withdrawAmount = scanner.nextInt();
int currentBalance = Integer.parseInt(selectedUser.get("银行余额"));
if (withdrawAmount > currentBalance) {
System.out.println("余额不足,取钱失败!");
} else {
int newBalance = currentBalance - withdrawAmount;
selectedUser.put("银行余额", String.valueOf(newBalance));
System.out.println("取钱成功!");
}
} else {
System.out.println("无效的操作类型!");
}
} else {
System.out.println("找不到对应编号的用户!");
}
// 保存用户信息到文本文件
BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\银行.txt"));
for (Map<String, String> user : userList) {
StringBuilder sb = new StringBuilder();
sb.append(user.get("编号")).append(" ")
.append(user.get("姓名")).append(" ")
.append(user.get("性别")).append(" ")
.append(user.get("银行余额"));
bw.write(sb.toString());
bw.newLine();
}
// 释放资源
bw.close();
}
}