黑马程序员——Properties类和基础框架复习

来源:互联网 发布:网络歌老情歌经典大全 编辑:程序博客网 时间:2024/06/06 03:14


-----------android培训java培训、java学习型技术博客、期待与您交流!------------

Properties类

一、概述

1PropertiesHashtable的子类,它具备Map集合的特点。而且它里面还有存储的键值对,都是字符串,无泛型定义。是集合中和IO技术想结合的集合容器。

2、特点:

        1)可用于键值对形式的配置文件

        2)在加载时,需要数据有固定的格式,常用的是:键=

 

二、特有方法

1、设置

        Object setProperty(String key,String value);

        //设置键和值,调用Hashtable的方法put

2、获取

        String getProperty(String key);

        //指定key搜索value

        Set<String> stringPropertyName();

        //返回属性列表的键集,存入Set集合

3、加载流和存入流

        void load(InputStream ism);

        //从输入字节流中读取属性列表(键和元素对)。又称将流中的数据加载进集合。

        void load(Readerreader);

        //从输入字符流中读取属性列表(键和元素对)。又称将流中的数据加载进集合。

        voidlist(PrintStream out);//将属性列表输出到指定的输出流

        void store(OutputStreamout,String comments);

        //对应load(InputStream )将属性列表(键值对)写入输出流。comments属性列表的描述。

        void store(Writerwriter, String comments);

        //对应load(Reader)将属性列表(键值对)写入输出流。comments属性列表的描述。

package com.it.heima;import java.io.*;//Properties是HashSet的子类,它具有Map集合的特点import java.io.*;import java.util.Properties;public class PropertiesDemo {public static void main(String[] args) {// TODO 自动生成的方法存根try {BufferedReader br=new BufferedReader(new FileReader("F:\\java\\10-4\\com.it.heima\\src\\com\\it\\heima\\Demo.Properties"));String str=br.readLine();String[] str1=str.split("=");//用=号将切割字符串Properties pp=new Properties();pp.setProperty(str1[0], str1[1]);System.out.println(pp);//可以看到集合pp中的内容//在这里也可以用反射的方式创建对象Class c=Class.forName(pp.getProperty(str1[0]));DemoClass dc=(DemoClass)c.newInstance();//调用对象中的方法dc.run();} catch (Exception e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}
在学习基础框架的时候也会用到它。

什么是框架,例如,我们要写程序扫描.java文件中的注解,要解决哪些问题:读取每一样,在每一个中查找@,找到的@再去查询一个列表,如果@后的内容出现在了列表中,就说明这是一个我能处理和想处理的注解,否则,就说明它不是一个注解或者说至少不是一个我感兴趣和能处理的注解。接着就编写处理这个注解的相关代码。现在sun提供了一个apt框架,它会完成所有前期工作,只需要我们提供能够处理的注解列表,以及处理这些注解的代码。Apt框找到我们感兴趣的注解后通知或调用我们的处理代码去处理。
你做的门调用锁,锁是工具,你做的门被房子调用,房子是框架,房子和锁都是别人提供的。

package com.it.heima;/*8、 已知一个类,定义如下:package cn.itcast.heima;   public class DemoClass {   public void run()   {      System.out.println("welcome to heima!");   }     }(1) 写一个Properties格式的配置文件,配置类的完整名称。(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。*/import java.util.*;import java.io.*;public class Test8 {    public static void main(String[] args) {        // TODO 自动生成的方法存根        Properties pp=new Properties();        FileReader file=null;        try {            file=new FileReader("F:\\java\\10-4\\com.it.heima\\src\\com\\it\\heima\\Demo.Properties");            pp.load(file);            for(int i=0;i<pp.size();i++){            Class c=Class.forName(pp.getProperty("DemoClass"));            DemoClass dc=(DemoClass)c.newInstance();            dc.run();            }                } catch (Exception e) {            // TODO 自动生成的 catch 块            e.printStackTrace();        }    }}
下面是配合文件中的内容:文件名字为Demo.Properties
DemoClass=com.it.heima.DemoClass





0 0
原创粉丝点击