Properties综合应用,冲冲冲

这篇博客介绍了如何使用Properties和IO流进行登录、注册功能的实现。通过全局变量存储用户信息,使用Scanner获取用户输入,登录时检查用户名是否存在并匹配密码。注册时需要注意判断用户名是否已存在,并使用FileWriter的追加模式避免覆盖原有数据。

        

登录:

注册:


        想必大家一定对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蛮神奇的哈哈哈, 谢谢大佬们的观看,感谢!!!俺一定会更努力的学习的!!

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值