IO(五) Properties

来源:互联网 发布:大数据思维与决策心得 编辑:程序博客网 时间:2024/06/05 17:20


PropertiesHashtTablede直接子类。也就是说它具备了Map集合的特点,而且它里面存放的key-value对都是字符串(String)的,它是集合中和Io技术相结合的容器。该对象的一个特点可以用键值对形式配置文件。(通常应用程序的配置文件都放在*.ini文件中)

Properties中有自己特有的将自己的键转成se集合的方法
public Set<String> stringPropertyNames()
并且还有自己的添加元素和通过key获得元素的方法:
public Object setProperty(String key, String value)
public String getProperty(String key)(此方法和Map的get方法一样,只不过get要强转换)
 
从流中加载键值对:
void    load(InputStream inStream) 
          从输入流中读取属性列表(键和元素对)。
 void   load(Reader reader) 
          按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
将键值对输入到流中:
void    list(PrintStream out) 
          将属性列表输出到指定的输出流。
 void   list(PrintWriter out) 
          将属性列表输出到指定的输出流。
将内存中的键值对存入硬盘中的文件:
public void store(Writer writer, String comments)
public void store(OutputStream out,String comments
应用:处理系统配置文件

import java.io. *;

import java.util.Properties;

public classPropertiesDemo {

 

    /**

     * @param args

     */

    public static void main(String[] args)throws IOException {

        // TODO Auto-generated method stub

        Filef = newFile("D:\\count.ini");

       

        if(!f.exists()){

            f.delete();

            f.createNewFile();

        }

        BufferedReaderfr = newBufferedReader(newFileReader(f));

        Propertiesp = newProperties();

        p.load(fr);

        int count =  0;

        Stringnum = p.getProperty("num");

        if(num !=null){

            count= Integer.parseInt(num);

            if(count>=5){

                System.out.println("使用次数已过,若要继续使用,请注册");

                return;

            }

        }

       

        p.setProperty("num", ++count+"");

       

        FileWriterfw = newFileWriter(f);

        p.store(fw,"使用次数");

        System.out.println("已使用次数: "+count);

        fr.close();

        fw.close();

    }

 

}

 
 
 

 


原创粉丝点击