黑马程序员技术交流社区

标题: IO流习题五 [打印本页]

作者: _J2EE_LiXiZhen    时间: 2017-10-28 18:53
标题: IO流习题五
[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();
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2