首页 > 代码库 > Properties集合

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 args31      * @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 = http://www.mamicode.com/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集合