Properties是hashtable的子类:
也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串,是集合和IO技术相结合的集合容器。
该对象的特点:可以用于键值对形式的配置文件。
那么在加载数据时,需要数据有固定格式:键=值。
常用方法:
Object setProperty(String key,String value):
调用Hashtable的put方法,设置键值对
String getProperty(String key):
Set<String> stringPropertyNames:
获取集合中所有的键
void load(InputStream in):
从输入流中读取属性列表(键和元素对)。
void load(Reader reader):
按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
void list(PrintStream out)
将属性列表输出到指定的输出流。
voidlist(PrintWriter out)
将属性列表输出到指定的输出流。
Store(OutputStream out,String comments):
Store(Writer writer,String comments)
也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串,是集合和IO技术相结合的集合容器。
该对象的特点:可以用于键值对形式的配置文件。
那么在加载数据时,需要数据有固定格式:键=值。
常用方法:
Object setProperty(String key,String value):
调用Hashtable的put方法,设置键值对
String getProperty(String key):
Set<String> stringPropertyNames:
获取集合中所有的键
void load(InputStream in):
从输入流中读取属性列表(键和元素对)。
void load(Reader reader):
按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
void list(PrintStream out)
将属性列表输出到指定的输出流。
voidlist(PrintWriter out)
将属性列表输出到指定的输出流。
Store(OutputStream out,String comments):
Store(Writer writer,String comments)
Properties不仅可以操作键值对,而且可以操作硬盘上的键值对信息。而集合只能操作内存中的数据。
代码:
import java.io.*;
import java.util.*;
public class code
{
public static void main(String[] args) throws IOException{
//setAndGet();
method_1();
System.out.println("over");
}
//演示,如何将流中的数据存储到集合中。
// 想要将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)
{
System.out.println(line);
String[] arr = line.split("=");
System.out.println(arr[0]+"...."+arr[1]);
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","40");
System.out.println(prop);
Set<String> names = prop.stringPropertyNames();
for (String s : names )
{
System.out.println(s+":"+prop.getProperty(s));
}
}
}