/*
Properties是hashtable的子类。
也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。
是集合中和IO技术相结合的集合容器。
该对象的特点:可以用于键值对形式的配置文件。
那么在加载数据时,需要数据有固定的格式:键=值
Properties类中的常见方法:
void load(InputStream inStream)
void list(PrintWriter out)
void store(OutputStream out, String comments)
*/
import java.util.*;
import java.io.*;
class PropertiesDemo
{
public static void main(String[] args) throws IOException
{
//setAndGet();
//method_1();
load();
}
/*
method_1方法就是load()方法的原理,
Properties类中的load()方法可以轻松搞定"将流中的数据存
储到集合中",并且是按键值对的形式存进来的。
*/
public static void load()throws IOException
{
FileInputStream fis = new FileInputStream("info.ini");
Properties prop = new Properties();
prop.load(fis);
//System.out.println(prop);
prop.list(System.out);
//现在将集合中的数据改动,并将改动后的数据存储到文件中
去
prop.setProperty("wangwu","39");
FileOutputStream fos = new FileOutputStream
("info.ini");
prop.store(fos,"hah");//用到store方法才会将改动后的数
据存储到文本文件中去,否则只是在内存中改动了
prop.list(System.out);
fis.close();
fos.close();
}
//演示:如何将流中的数据存储到集合中
//想要将info.ini中键值数据存到集合中进行操作。
/*
1.用一个流和info.ini文件关联。
2.读取一行数据,将该行数据用"="进行切割。
3.等号左边作为键,右边作为值。存入到Properties集合中即
可。
*/
public static void method_1() throws IOException
{
BufferedReader bufr = new BufferedReader(new
FileReader("info.ini"));
Properties prop = new Properties();
String line=null;
while((line=bufr.readLine())!=null)
{
//System.out.println(line);
String[] arr = line.split("=");
prop.setProperty(arr[0],arr[1]);
}
//System.out.println(prop);
bufr.close();
}
public static void setAndGet()
{
Properties prop = new Properties();
prop.setProperty("zhangsan","20");
prop.setProperty("lisi","30");
//System.out.println(prop);
String value = prop.getProperty("lisi");
//System.out.println(value);
/*
Set keySet = prop.keySet();
Iterator it = keySet.iterator();
while(it.hasNext())
System.out.println(it.next());
*/
Set<String> names = prop.stringPropertyNames();
for(String s : names)
System.out.println(s+"="+prop.getProperty(s));
}
}
day20/PropertiesDemo.java
最新推荐文章于 2022-11-27 17:05:32 发布