day20/PropertiesDemo.java

来源:互联网 发布:网络远程教育学校 编辑:程序博客网 时间:2024/06/14 17:45
/*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));}}

0 0
原创粉丝点击