Properties类
(一). 基本认识
1)是hashTable的子类,具备了map集合的特点;
2)存储的键值对都是字符串,不需要泛型;
3)是集合中和IO技术相结合的集合容器;
4)该对象的特点:可以用于键值对形式的配置文件。
(二). 设置和获取元素方法
1)setProperty(key,value):设置键和值
2)getProperty(key):根据键,取得相对应的值
3)stringPropertyNames():取得集合中的所有键,返回的是set集合。
(三)流中文件存入集合中
1)load(输入流):加载来自文件输入流的数据到Properties集合中
2)store(输出流):将Properties集合中的数据通过输出流保存到文件中。
3)list(打印流):将Properties集合中的数据通过打印流显示出来。
示例1:
import java.util.*;
class PropertiesDemo
{
public static void main(String args[])
{
}
public static void setAndGet()
{
Properties pro = new Properties();
pro.setProperty("zhangsan","32");
pro.setProperty("lisi","34");//设置键和值
String value = pro.getProperty("lisi");//根据键取得值
pro.setProperty("lisi",89+"");//可以修改存入的值
Set<String> names = pro.stringPropertyNames();
for(String key:names)
{
System.out.println(key+"::"+pro.getProperty(key));
}
}
}
示例2:
如何将流中(文件)的数据存储到集合中(Properties)?
思路:读取一行数据,分割为key和value,存入到另一个文件,并保存。
public static void method2
{
Properties pro = new Properties();
FileInputStream fis = new FileInputStream("info.txt");
pro.load(fis);
pro.setProperty("wangwu","90");
FileOutputStream fos = new FileOutputStream("info.txt");
pro.store(fos,"hahah");
System.out.println(pro);
pro.list(System.out);
fos.close();
fis.close();
}
public static void method1
{
BufferedReader bfr = new BufferedReader(new FileReader("info.txt"));
Properties pro = new Properties();
String line = null;
while((line=bfw.readLine())!=null)
{
String[] str = line.split("=");
pro.setProperty(str[0],str[1]);
}
bufr.close();
System.out.println(pro);
}
示例3:
用于记录应用程序执行次数,当到达一定次数,则给出提示信息
作用:配置文件可以实现应用程序的数据共享,当应用程序关闭时,内存空间也关闭。
import java.util.*;
class PropertiesDemo2
{
public static void main(String args[])
{
}
public static void runCount
{
Properties pro = new Properties();
File file = new File("count.ini");
if(!file.exists())
{
file.createNewFile();
}
FileInputStream fis = new FileInputStream(file);
pro.load(fis);
int count = 0;
String value = pro.getProperty("time");
if(value!=null)
{
count = Integer.parseInt(value);
if(count>=5)
{
System.out.println("您好,使用次数已到,请续费!")
}
}
count ++;
pro.setProperty("time",count+"");
FileOutputStream fos = new FileOutputStream(file);
pro.store(fos,"");
fis.close();
fos.close();
}
}