Properties是hashtable的子类。
也就是说他有map集合的特点,而且它里面存储的键值对都是字符串。
他是集合中和IO技术相结合的集合容器。
对象:键值对配置文件。如果要操作这种文件就要用到Propeties类。
Popeties:
-
load();从流中加载键值对的信息。
Properties的基本操作:
import java.util.*;
import java.io.*;
class propetiesDemo{
public static void main(String[] args) throws IOException{
method_1();
}
//演示:如何将流中的数据存储到集合中。
//想要将info.txt中的键值对中的数据存到集合中进行操作。
/*
思路:
1,用一个流有info.txt文件相关联。
2,读取一行数据,将该行数据用“=”进行分割。
3,等号左边为键,右边为值,存入到Propeerties集合即可。
*/
public static void method_1() throws IOException{
BufferedReader bufr = new BufferedReader(new FileReader("F:\\test\\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);
}
}
- store()方法:将集合中的元素存入文档。
Properties练习:
- 需求:用于记录应用程序的运行次数。如果使用次数已到,那么就显示注册信息。
- 思路:计数器。如果计数器定义在程序中,那每次程序关闭时,计数器就停止作业。当下次开启程序时,计数器又会从0开始计数。要想下次从上次计数的基础上开始计数就需要定义配置文件,就需要用到properties。
- 这样配置文件可以实现数据共享。
import java.io.*;
import java.util.*;
class runCount{
public static void main(String[] args) throws IOException{
Properties prop = new Properties();
//将配置文件定义为文件对象
File file = new File("/Users/xieliting/JAVA/test/init.ini");
//如果文件不存在就创建文件
if(!file.exists())
file.createNewFile();
FileInputStream fis = new FileInputStream(file);
//从配置文件输入字节流中读取属性列表
prop.load(fis);
//用count表示程序运行的次数
int count = 0;
//定义value存取times的值
String value = prop.getProperty("times");
System.out.println("times="+prop.getProperty("times"));
if(value!=null){
count = Integer.parseInt(value);
if(count>=5){
System.out.println("pay for it .");
return ;
}
}
count++;
//更新映射表的信息
prop.setProperty("times",count+"");
System.out.println("times="+prop.getProperty("times"));
//定义输出流对象
FileOutputStream fos = new FileOutputStream(file);
//将properties映射表中的数据存回到文件夹中。
prop.store(fos,"");
fis.close();
fos.close();
}
}
网友评论