想必大家一定对properties有所了解,甚至是可能熟悉的不能再熟悉了,走过路过别错过,今天给大家带来一个小小的properties的综合应用!下面先来个图,鼓励鼓励自己!

第一次用Properties与IO流结合实现综合应用,可能代码写的不是很好,可能会影响大家的思路,哈哈,不过会逐步改进的!
登录:
登录,无非就是把已经存在于文件的东西,将他进行调用,然后匹配数据,判断用户名是否存在,也不过是把全部的数据读一般,倘若没找到该用户名,则抛出,您输入的用户名不存在。反之找到了你输入的用户名之后,方可输入密码,倘若密码与用户名是匹配的,则登录成功,否则弹出提示,您输入的用户名或密码不正确!(其实就是不匹配咯哈哈)!
首先我们直接设置一个全局变量:
里面存储的是我们登录注册用的用户信息 (用户名和密码);
private static File file=new File("BooksManagement\\src\\com\\data\\UserInfo.txt");
还有FileReader fr;
private static FileReader fr;
static {
try {
fr = new FileReader(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
其实这种写法感觉不是很严谨哈, 当时为了偷懒,所以这样写的哈哈哈
接下来就是我们的Login方法!
private static Properties prop=new Properties();
public static void Login() throws IOException, ClassNotFoundException {
System.out.println("请您先进行登录,冲冲冲!");
if (!file.exists()){
file.createNewFile();
}
//输入账号密码然后进行判断,是否正正确
System.out.println("请输入您的用户名:");
String username=sc.next();
System.out.println("请输入您的密 码:");
String pwd=sc.next();
prop.load(fr);
if (prop.containsKey(username)&&prop.containsValue(pwd)){
System.out.println("登陆成功!");
MainTest.EnterMianMenu();
}else {
System.out.println("您输入的账户或密码不正确");
}
if (!prop.containsKey(username)){
System.out.println("您的用户不存在,请您先去注册(Y/N)");
char c= TSUtility.readConfirmSelection();
if (c=='Y'){
Registered();
}else {
System.out.println("取消注册!");
}
}
}
诶不好意思,这里忘记把那个啥 我们很重要的 Scanne忘记了 ,我们写在这里
private static Scanner sc=new Scanner(System.in);
其实很多时候我们会用到Scanner, 大多数时候 你需要输入东西的时候,你就用到它, 所以可以直接写在全局变量里面
注册:
注册呢,首先你得理解注册的意思。注册注册,无非就是把一个没有的东西,给他增加出来,你看,是不是感觉很熟悉了,就是一个增加哈哈哈。 不过值得注意的地方呢就是, 你得注意注册用户的时候,需要判断该用户名是否已经存在了,所以呢不要忘记做判断奥!
public static void Registered( ) throws IOException {
System.out.println("请输入您要注册的用户名:");
String username=sc.next();
FileReader fr=new FileReader(file);
prop.load(fr);
if (prop.containsKey(username)){
System.out.println("当前账号已经存在!");
System.out.println("请重新更换用户名!");
}else {
System.out.println("请输入您要注册的密 码:");
String pwd=sc.next();
prop.setProperty(username,pwd);
FileWriter fw=new FileWriter(file,true);
prop.store(fw,"-------UserInfo-----");
fr.close();
fw.close();
/* Set<String> keys = prop.stringPropertyNames();
for (String key:keys){
System.out.println(key+"="+prop.getProperty(key));
}*/
}
}
放在方法的最后面那个,for循环,我是为了方便看我里面的信息,所以嘿嘿就没有删除,注册登录其实都不难,值得注意的点位就是, FileWriter fw=new FileWriter(file ,true); 你得加上一个ture 才能对数据进行追加, 如果没有写那个true,你没进行一次注册, 你先前的UserInfo.txt里面的内容就全部被覆盖了。

第一次不调用对象,来实现登录与注册,感觉properties蛮神奇的哈哈哈, 谢谢大佬们的观看,感谢!!!俺一定会更努力的学习的!!
这篇博客介绍了如何使用Properties和IO流进行登录、注册功能的实现。通过全局变量存储用户信息,使用Scanner获取用户输入,登录时检查用户名是否存在并匹配密码。注册时需要注意判断用户名是否已存在,并使用FileWriter的追加模式避免覆盖原有数据。
805





