Day_14【IO流】扩展案例2_缓冲字符输出、输入流进行用户名的创建

需求分析

  •  1.项目根目录下建立文件: user.txt,文件中存放用户名和登录密码,格式:用户名,密码,如:aaa,123;
    2.user.txt文件中初始存放的用户信息有如下:
    jack,123
    rose,123
    tom,123
    3.要求完成如下功能:
    程序运行时:控制台提示用户输入注册的用户名和密码;
    验证键盘录入的用户名跟user.txt中已注册的用户名是否重复:
    是:控制台提示:用户名已存在
    否:将键盘录入的用户名及密码写入user.txt文件,并在控制台提示:注册成功;

思路

  •  1.键盘录入用户名和密码并用两个String变量接受
    2.创建输入流对象关联user.txt
    3.创建集合对象, 用于存储读取到的数据
    4.定义boolean类型的标记flag, 假设键盘录入的用户名不存在, 默认为false
    5.遍历集合获取到每一个数据(数据是用户名,密码的字符串, 思路不要乱)
    a)根据逗号切割当前字符串, 获取字符串数组中0索引的用户名
    b)拿着键盘录入的用户名和切割后的用户名逐个对比, 相同的话将flag改为true
    6.判断flag
    a)true : 提示已经存在
    b)false: 创建输出流对象关联user.txt, 并将键盘录入的用户名和密码拼接上逗号写出.(注意尾部追加)

代码

package com.itheima2;

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; public class Test2 {
public static void main(String[] args) throws IOException {
//创建键盘录入对象
Scanner sc = new Scanner(System.in); //键盘录入用户名和密码并用两个String变量接受
System.out.println("请输入您的用户名:");
String userName = sc.nextLine(); System.out.println("请输入您的用户密码:");
String password = sc.nextLine(); //创建输入流对象关联user.txt
BufferedReader br = new BufferedReader(new FileReader("user.txt")); //创建集合对象, 用于存储读取到的数据
ArrayList<String> array = new ArrayList<String>(); String line;
while((line = br.readLine()) != null) {
array.add(line);
} br.close(); //定义boolean类型的标记flag, 假设键盘录入的用户名不存在, 默认为false
boolean flag = false; //遍历集合获取到每一个数据(数据是用户名,密码的字符串, 思路不要乱)
for(String s : array) {
//根据逗号切割当前字符串, 获取字符串数组中0索引的用户名
String[] strArray = s.split(",");
//拿着键盘录入的用户名和切割后的用户名逐个对比, 相同的话将flag改为true
if(userName.equals(strArray[0])) {
flag = true;
}
} //判断flag
if(flag) {
//true : 提示已经存在
System.out.println("用户名已存在");
} else {
//false: 创建输出流对象关联user.txt, 并将键盘录入的用户名和密码拼接上逗号写出.(注意尾部追加)
BufferedWriter bw = new BufferedWriter(new FileWriter("user.txt",true)); bw.write(userName+","+password);
bw.newLine();
bw.flush(); bw.close(); System.out.println("注册成功");
}
} }

控制台输出内容

Day_14【IO流】扩展案例2_缓冲字符输出、输入流进行用户名的创建

上一篇:war内部结构


下一篇:Day_13【IO流】扩展案例2_统计指定项目文件中字符出现的次数