集合(Properties)

2022-07-16 13:33:32 浏览数 (1)

集合(Properties)

介绍这个集合的原因就是这个集合可以和流结合使用。 这个集合的具体说明就不在本文详细说明了,具体的在之前的集合文中再补充吧。简单说明一下和其用法。

这个集合首先是Map下的子类,所以也是双列集合。但是不支持泛型。用代码来看看具体使用。简单演示。

代码语言:javascript复制
package io_demo;

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

public class IoDemo_25 {
    public static void main(String[] args) {
        //创建集合对象
        Properties pro = new Properties();
        //存储元素
        pro.put(001,"jgdabc");
        pro.put(002,"兰舟千帆");
        pro.put(002,"lym");
        //遍历集合
        Set<Object> KeySet = pro.keySet();
        for(Object key:KeySet)
        {
            Object value = pro.get(key);
            System.out.print(key "," value);
        }
        pro.setProperty("000","jgdabc");
        pro.getProperty("000");
        //获取键值
        Set<String> names = pro.stringPropertyNames();//获取到键集合
        //于是可以这样遍历
        for(String key:names)
        {
            String value = pro.getProperty(key);
            System.out.println(key value);
        }


    }
}

==它的put()方法键是Object类型的,setProperty()方法的键必须是String类型。==这个需要注意。

集合到文件,文件到集合
代码语言:javascript复制
package io_demo;

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

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

    private static void myLoad() throws IOException {
        Properties prop = new Properties();
        FileReader fr = new FileReader("E:\java_doc\src\io_demo\jgdabc.txt");
        prop.load(fr);
        fr.close();
        System.out.print(prop);
    }

    private static void myStore() throws IOException {
        Properties prop = new Properties();
        prop.setProperty("000","jack");
        prop.setProperty("001","jgdabc");
        prop.setProperty("002","john");
        FileWriter fw = new FileWriter("E:\java_doc\src\io_demo\jgdabc.txt");
        prop.store(fw,null);//null代表不描述信息
    }
}
做一个猜数字游戏

文件中给一个count=0,然后用这个集合读取到数据(需要转换为int类型,然后根据值得限制,限制玩的次数。当然没每次运行完毕都会count 1,运行三次就不能玩了。这个和一直在交互是不一样的。) 首先一个猜数字游戏类

代码语言:javascript复制
package java_practice;

import java.util.Scanner;

public  class GuessNumber {

    public static  void start()
    {
        Scanner input = new Scanner(System.in);
        int number = (int) (Math.random() * 100) 1; // 产生随机数
        int guess;// 用户猜的数字
        int count = 0;// 猜测次数
        System.out.println("我心里有一个0到100之间的整数,你猜是什么?");
        // 用户猜测随机数
        do {
            guess = input.nextInt();
            if (number < guess) {
                System.out.println("大了点,再猜!");
                count  ;
            } else if (number > guess) {
                System.out.println("小了点,再猜!");
                count  ;
            } else {
                count  ;
                break;
            }
        } while (true);
        System.out.println("这个数字是" number);
        System.out.println("您猜的次数是" count);
        // 根据猜测次数给出评价
        if (count == 1) {
            System.out.println("你太聪明了!");
        } else if (count >= 2 && count <= 5) {
            System.out.println("不错,再接再厉!");
        } else {
            System.out.println("要努力啊!");
        }


    }
}

然后一个测试主类

代码语言:javascript复制
package io_demo;

import java_practice.GuessNumber;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.SQLOutput;
import java.util.Properties;

public class IoDemo_27 {


    public static void main(String args[]) throws IOException {
        GuessNumber guessNumber = new GuessNumber();
        Properties prop = new Properties();
        FileReader fr = new FileReader("E:\java_doc\src\io_demo\count.txt");
        prop.load(fr);
        fr.close();
        String count = prop.getProperty("count");
        int number = Integer.parseInt(count);
        if(number>=3)
        {
            System.out.println("游戏试玩结束,想玩请充值");
        }else
        {
           guessNumber.start();
            prop.setProperty("count",String.valueOf(number));
            number  ;
            FileWriter fw =  new FileWriter("E:\java_doc\src\io_demo\count.txt");
            prop.store(fw,null);
            fw.close();
        }


    }
}

注意一定要自己建立一个文件,里面存一个标记值。这样功能就可以实现了。

0 人点赞