栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

8.Properties类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

8.Properties类

1.Properties 1.Propertiesg概述:
  • 是一个Map体系的集合类
  • Properties可以保存到流中或从流中加载
2.练习:Properties作为Map集合使用
package Study09;

import java.util.Properties;
import java.util.Set;


public class PropertiesDemo {
    public static void main(String[] args) {
        //创建集合对象
//        Properties pts = new Properties();//错误
        Properties prop = new Properties();

        //存储元素
        prop.put("001","迪丽热巴");
        prop.put("002","王冰冰");
        prop.put("003","古力娜扎");

        //遍历集合
        Set o = prop.keySet();
        for (Object key:o){
            Object value = prop.get(key);
            System.out.println(key+","+value);
        }
    }
}
 
3.Properties作为集合的特有方法: 
方法名说明
Object setPropeerty(String key,String value)设置集合的键和值,都是String类型,底层调用Hashtable方法put
String getProperty(String key)使用此属性列表中指定的键搜索属性
SetstringPropertyNames()从该属性列表中返回一个不可修改的键集,其中键及其对应的值是字符串
  • 代码示例
package Study09;

import java.util.Properties;
import java.util.Set;


public class PropertiesDemo01 {
    public static void main(String[] args) {
        //创建集合对象
        Properties prop = new Properties();
        //| `Object setPropeerty(String key,String value)` | 设置集合的键和值,都是String类型,底层调用Hashtable方法put   |
        prop.setProperty("001","迪丽热巴");
        
        prop.setProperty("002","王冰冰");
        prop.setProperty("003","哈尼克孜");

        //| `String getProperty(String key)`               | 使用此属性列表中指定的键搜索属性                             |
//        System.out.println(prop.getProperty("001"));//迪丽热巴
//        System.out.println(prop.getProperty("0011"));//null
//
//
//        System.out.println(prop);//{001=迪丽热巴, 002=王冰冰, 003=哈尼克孜}

        //| `SetstringPropertyNames()`             | 从该属性列表中返回一个不可修改的键集,其中键及其对应的值是字符串 |
        Set names = prop.stringPropertyNames();
        for (String key:names){
            String value = prop.getProperty(key);
            System.out.println(key+","+value);
        }
    }
}

4.Properties和IO流结合的方法
方法名说明
void load(InputStream inStream)从输入字节流读取属性列表
void load(Reader reader)从输入字符流读取属性列表(键和元素对)
void store(OutputStream out,String comments)将此属性列表(键和元素对)写入此Properties表中,以适合于使用load(InputStream)方法的格式写入输出字节流
void store(Writer writer,String comments)将此属性列表(键和元素对)写入此Properties表中,以适合使用load(Reader)方法的格式写入输入字符流。

以字符流为例:

package Study09;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;


public class Properties02 {
    public static void main(String[] args) throws IOException{
        //把集合中的数据保存到文件
        myStore();
        //把文件中的数据加载到集合
        myLoad();
    }

    private static void myLoad() throws IOException{
        //创建集合对象
        Properties prop = new Properties();
        //| void load(Reader reader)     | 从输入字符流读取属性列表(键和元素对)
        FileReader fr = new FileReader("Study\prop.txt");
        prop.load(fr);
        fr.close();
        System.out.println(prop);
    }

    private static void myStore() throws IOException {
        //创建集合对象并添加集合元素
        Properties prop = new Properties();

        prop.setProperty("001","迪丽热巴");
        prop.setProperty("002","王冰冰");
        prop.setProperty("003","哈尼克孜");

        //| void store(Writer writer,String comments)
        FileWriter fw = new FileWriter("Study\prop.txt");
        prop.store(fw,null);
        //释放资源
        fw.close();
    }
}
5.案例:游戏次数

需求:请写程序实现猜数字小游戏,只能玩3次,如果还想玩,提示:游戏试玩已结束,想玩请充值(www.handsomeboy.com)

思路:

  • 写一个游戏类,里面有一个猜数字的小游戏
  • 写一个测试类,测试类中有main()方法,main()方法中按照下面步骤完成:
    • A:从文件中读取数据到Properties集合,用load()方法实现
      • 文件以及存在:game.txt
      • 里面有一个数据值:count=1
    • B:通过Properties集合获取到玩游戏的次数
    • C:判断次数是否达到3次了
      • 如果到了,给出提示:游戏试玩已结束,想玩请充值(www.handsomeboy.com)
      • 如果不到3次:
        • 玩游戏
        • 次数+1,重新写回文件,用Properties的store()方法实现

代码:

//game.txt
#Wed Dec 01 10:59:13 CST 2021
count=0
//GussNumber类
package Study10;

import java.util.Random;
import java.util.Scanner;

public class GussNumber {
    private GussNumber(){

    }
    public static void start(){
        //随机生成一个1~100的数
        Random r = new Random();
        int Number = r.nextInt(100)+1;
        //循环进行猜数字
        while (true){
            //输入数据
            System.out.println("请输入猜的整数");
            Scanner sc = new Scanner(System.in);
            int value = sc.nextInt();
            //使用分支语句进行判断
            if (value==Number){
                System.out.println("恭喜你,猜对了");
                break;
            }else if (value>Number){
                System.out.println("猜的数字:"+value+"大了");
            }else if (value 
//测试类
package Study10;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;


public class PropertiesTestDemo {
    public static void main(String[] args) throws IOException {
        //- A:从文件中读取数据到Properties集合,用load()方法实现
        Properties prop = new Properties();
        FileReader fr = new FileReader("Study\game.txt");
        prop.load(fr);

        fr.close();

        //- B:通过Properties集合获取到玩游戏的次数
        String count = prop.getProperty("count");
        int number = Integer.parseInt(count);
        //- C:判断次数是否达到3次了
        if (number>=3){
            //- 如果到了,给出提示:游戏试玩已结束,想玩请充值(www.handSomeBoy.com)
            System.out.println("游戏试玩已结束,想玩请充值(www.handSomeBoy.com)");
        }else {
            //- 如果不到3次:
            //- 玩游戏
            GussNumber.start();
            //- 次数+1,重新写回文件,用Properties的store()方法实现
            number++;
            prop.setProperty("count",String.valueOf(number));
            FileWriter fw = new FileWriter("Study\game.txt");
            prop.store(fw,null);
            fw.close();
        }

    }
}

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号