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();
}
}