验证键盘录入的用户名跟user.txt中已注册的用户名是否重复:是:控制台提示:用户名已存在否:将键盘录入的用户名及密码写入user.txt文件,并在控制台提示:注册成功;

 1.项目根目录下建立文件:user.txt,文件中存放用户名和登录密码,
格式:用户名,密码
如:aaa,123
2.user.txt文件中初始存放的用户信息有如下:

zhangsan,123456
lisi,123abc
wangwu,789qwe


3.要求完成如下功能:
程序运行时:控制台提示用户输入注册的用户名和密码;
验证键盘录入的用户名跟user.txt中已注册的用户名是否重复:
是:控制台提示:用户名已存在
否:将键盘录入的用户名及密码写入user.txt文件,并在控制台提示:注册成功;
提示:字符串.split可以将一个有分隔符的字符串转换成一个数组

package com.io.properties_deal;

import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

/*
    第一个需求:
    1.项目根目录下建立文件:user.txt,文件中存放用户名和登录密码,
    格式:用户名,密码
    如:aaa,123
    2.user.txt文件中初始存放的用户信息有如下:
    zhangsan,123456
    lisi,123abc
    wangwu,789qwe
    3.要求完成如下功能:
    程序运行时:控制台提示用户输入注册的用户名和密码;
    验证键盘录入的用户名跟user.txt中已注册的用户名是否重复:
    是:控制台提示:用户名已存在
    否:将键盘录入的用户名及密码写入user.txt文件,并在控制台提示:注册成功;
    提示:字符串.split可以将一个有分隔符的字符串转换成一个数组
 */
public class Homework1018_01 {
    public static void main(String[] args) throws IOException {
        // 将 user.txt文件中文本读取出来,存放到内存中的一个map中
        BufferedReader br = new BufferedReader(new FileReader("test_io\\src\\main\\java\\com\\io\\properties_deal\\user.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("test_io\\src\\main\\java\\com\\io\\properties_deal\\user.txt",true));
        // 使用HashMap存放会被查找的信息
        HashMap<String, String> hMap = new HashMap<String, String>();

        String line = null;
        // 循环读取文本文件中的数据,并输出到一个map中
        while ((line = br.readLine()) != null){    // line = "zhangsan,123456"
            // 使用 String.split 方法可以对字符串进行拆分,按照指定的分隔符进行拆分,结果是一个数组
            String nm = line.split(",")[0];
            String pw = line.split(",")[1];
            hMap.put(nm,pw);
        }


        // 程序运行时:控制台提示用户输入注册的用户名和密码;
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入注册的用户名:");
        String userName ; // zhangsan
        String password ;
        userName = scanner.nextLine();
        if (hMap.containsKey(userName)) { // 如果userName存在于map中,则进入判断
            System.out.println("输入的用户名已存在,请重新注册");
            br.close();
            bw.close();
            return;
        }else{  // 用户输入的用户名不存在于 map 中
            System.out.print("请输入密码:");
            password = scanner.nextLine();
            // hMap.put(userName,password);
        }
        bw.newLine();
        bw.write(userName+","+password);

        // 如果能够执行到这一步,则说明,用户是正常的填写了用户名和密码
        // 我们将将其放入到了map中
        // 读取map中的数据,放到文件中
        /*Set<Map.Entry<String, String>> entries = hMap.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            bw.write(entry.getKey()+","+entry.getValue());
            bw.newLine();
        }*/
        br.close();
        bw.close();
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值