[Java] 纯文本查看 复制代码
package cn.itcast.Test05;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
/**
*
* 分析以下需求,并用代码实现 1.项目根目录下建立文件: user.txt,文件中存放用户名和登录密码,格式:用户名,密码,如:aaa,123; 2.
* user.txt文件中初始存放的用户信息有如下: jack,123 rose,123 tom,123 3.要求完成如下功能:
* 程序运行时:控制台提示用户输入注册的用户名和密码; 验证键盘录入的用户名跟user.txt中已注册的用户名是否重复: 是:控制台提示:用户名已存在
* 否:将键盘录入的用户名及密码写入user.txt文件,并在控制台提示:注册成功;
*
*/
public class MainApp {
public static void main(String[] args) throws IOException {
// 创建键盘录入对象]
Scanner sc = new Scanner(System.in);
// 创建BufferedReader对象
BufferedReader br = new BufferedReader(new FileReader("user.txt"));
// 创建集合接收输入流内容和控制台输入内容
ArrayList<String> list = new ArrayList<>();
// 读取数据到集合
String line;
while ((line = br.readLine()) != null) {
list.add(line);
}
// 关闭
br.close();
// 提示用户输入
System.out.println("请输入账号:");
String name = sc.next();
System.out.println("请输入密码:");
String psw = sc.next();
//定义计数器
int count = 0;
// 循环遍历集合查找账号密码是否注册(用户名是否重复)
for (int i = 0; i < list.size(); i++) {
String[] str = list.get(i).split(",");
if (str[0].equals(name)) {
System.out.println("用户名已存在");
break;
} else {
count++;
}
if(count == list.size()) {
// 创建StringBuilder对象用来拼接字符串
StringBuilder sb = new StringBuilder();
sb.append(name).append(",").append(psw);
// 接收拼接后的字符串
String user = sb.toString();
list.add(user);
System.out.println("注册成功");
break;
}
}
// 创建BufferedWriter对象
BufferedWriter bw = new BufferedWriter(new FileWriter("user.txt"));
// 循环写入文件
for (int i = 0; i < list.size(); i++) {
// 写入
bw.write(list.get(i));
bw.newLine();
}
// 关闭
bw.close();
}
}