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集合的主要内容,如果未能解决你的问题,请参考以下文章
solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例
JAVA IO流相关代码(Properties类的常见方法与应用)