凌风博客原创作品。转载请注明出处:http://blog.csdn.net/q549130180/article/details/45333441
Properties是hashtable的子类
也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串是集合中和IO技术相结合的集合容器
该对象的特点:可以用于键值对形式的配置文件。
那么在加载数据时,需要数据有固定格式:键=值
- import java.io.*;
- import java.util.*;
- class PropertiesDemo_1
- {
- public static void main(String[] args) throws IOException
- {
- loadDemo();
- }
- public static void loadDemo() throws IOException
- {
- Properties prop = new Properties();
- FileInputStream fis = new FileInputStream("info.txt");
- //将流中的数据加载进集合
- prop.load(fis);
- //改变键的值
- prop.setProperty("wangwu","39");
- FileOutputStream fos = new FileOutputStream("info.txt");
- prop.store(fos,"zhushi");//将改变的键的值存储到文件中,存储时需要输出流对象
- //System.out.println(prop);
- prop.list(System.out);
- fos.close();
- fis.close();
- }
- }
想要将info.txt中键值数据存储到集合中进行操作
1.用一个流和info.txt文件关联
2.读取一行数据,将该行数据用"="进行切割
3.等号左边作为键,右边作为值,存入到Properties集合中即可
- public static void method_1() throws IOException
- {
- BufferedReader bufr = new BufferedReader(new FileReader("info.txt"));
- String line = null;
- Properties prop = new Properties();
- while ((line=bufr.readLine())!=null)
- {
- String[] arr = line.split("=");
- prop.setProperty(arr[0],arr[1]);
- }
- bufr.close();
- System.out.println(prop);
- }
- //设置和获取元素
- public static void setAndGet()
- {
- Properties prop = new Properties();
- prop.setProperty("zhangsan","30");
- prop.setProperty("lisi","39");
- String value = prop.getProperty("lisi");
- Set<String> names = prop.stringPropertyNames();
- for(String s : names)
- {
- System.out.println(s+":"+prop.getProperty(s));
- }
- }
用于记录应用程序运行次数
如果使用次数已到,那么给出注册提示
很容易想到的是:计数器
可是该计数器定义在程序中,随着程序的运行而在内存中存在,并进行自增
可是随着该应用程序的退出,该计数器也在内存中消失了
下一次在启动该程序,又重新开始从0计数
这不是我们想要的
程序即使结束,该计数器的值也存在。
下次程序启动前会先加载该计数器的值并加1后在重新存储起来
所以要建立一个配置文件,用于记录该软件的使用次数
该配置文件使用键值对的形式
这样便于阅读数据,并操作数据
键值对数据时map集合
数据是以文件形式存在,使用io技术
那么map+io -->properties
配置文件可以实现应用程序数据的共享
- class RunCount_2
- {
- public static void main(String[] args)
- {
- Properties prop = new Properties();
- File file = new File("count.ini");
- fi(!file.exists())
- file.createNewFile();
- FileInputStream fis = new FileInputStream(file0);
- prop.load(fis);
- int count = 0;
- String value = prop.getProperty("time");
- if (value!=null)
- {
- count = Integer.paraeInt(value);
- if (count>5)
- {
- System.out.println("您好,使用次数以到,拿钱!");
- return ;
- }
- }
- count++;
- prop.setProperties("time",count+"");
- FileOutputStream fos = new FileOutputStream(file);
- prop.store(fos,"");
- fos.close();
- fis.close();
- }
- }