Properties集合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Properties集合相关的知识,希望对你有一定的参考价值。

Map

  |--Hashtable

    |--Properties

 

Properties集合特点:

 1.该集合中的键和值都是字符串类型

 2.集合中的数据可以保存在IO流中或者从IO流中获取数据。

通常该集合用于操作以键值对存在的配置文件。

 

Properties有个list方法,用于调试过程中,输出properties中的数据

Pro.list(system.out)将properties中的数据在控制台显示。

 

两个最常用的方法,与io流相结合

store

load

 

 1 /*
 2  * 定义功能,获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示。并不要在运行程序。
 3  * 
 4  * 思路:
 5  * 1,应该有计数器。 
 6  * 每次程序启动都需要计数一次,并且是在原有的次数上进行计数。
 7  * 2,计数器就是一个变量。 突然冒出一想法,程序启动时候进行计数,计数器必须存在于内存并进行运算。
 8  * 可是程序一结束,计数器消失了。那么再次启动该程序,计数器又重新被初始化了。
 9  * 而我们需要多次启动同一个应用程序,使用的是同一个计数器。 
10  * 这就需要计数器的生命周期变长,从内存存储到硬盘文件中。
11  * 
12  * 3,如何使用这个计数器呢?
13  *     首先,程序启动时,应该先读取这个用于记录计数器信息的配置文件。
14  *  获取上一次计数器次数。 并进行试用次数的判断。
15  *  其次,对该次数进行自增,并自增后的次数重新存储到配置文件中。 
16  *  
17  * 
18  * 4,文件中的信息该如何进行存储并体现。
19  *     直接存储次数值可以,但是不明确该数据的含义。 所以起名字就变得很重要。
20  *     这就有了名字和值的对应,所以可以使用键值对。
21  *     可是映射关系map集合搞定,又需要读取硬盘上的数据,所以map+io = Properties.
22  * 
23  * 
24  * 
25  */
26 
27 public class PropertiesTest {
28 
29     /**
30      * @param args
31      * @throws IOException 
32      * @throws Exception 
33      */
34     public static void main(String[] args) throws IOException  {
35         
36         getAppCount();
37         
38     }
39     
40     public static void getAppCount() throws IOException{
41         
42         //将配置文件封装成File对象。
43         File confile = new File("count.properties");
44         
45         if(!confile.exists()){
46             confile.createNewFile();
47         }
48         
49         FileInputStream fis = new FileInputStream(confile);
50         
51         Properties prop = new Properties();
52         
53         prop.load(fis);
54         
55         
56         //从集合中通过键获取次数。        
57         String value = prop.getProperty("time");
58         //定义计数器。记录获取到的次数。
59         int count =0;
60         if(value!=null){
61             count = Integer.parseInt(value);
62             if(count>=5){
63 //                System.out.println("使用次数已到,请注册,给钱!");
64 //                return;
65                 throw new RuntimeException("使用次数已到,请注册,给钱!");
66             }
67         }
68         count++;
69         
70         //将改变后的次数重新存储到集合中。
71         prop.setProperty("time", count+"");
72         
73         FileOutputStream fos = new FileOutputStream(confile);
74         
75         prop.store(fos, "");
76         
77         fos.close();
78         fis.close();
79         
80         
81     }
82 
83 }

 

以上是关于Properties集合的主要内容,如果未能解决你的问题,请参考以下文章

laravel特殊功能代码片段集合

代码片段

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

JAVA IO流相关代码(Properties类的常见方法与应用)

JAVA IO流相关代码(Properties类的常见方法与应用)

金蝶handler中 collection 代码片段理解