特殊操作流(下)

一,Properties

是一个Map体系的集合
Properties可以保存到流中或从流中加载
虽然是Map体系的但是创建该集合时不能指定泛型

方法描述
Object setProperty(String key,String value)设置集合的键和值,都是String类型,底层调用Hashtable的put方法
String getProperty(String key)使用此属性列表中指定的键搜索属性
Set<String> stringPropertyNames()从该属性列表中返回一个不可修改的键集,其中健及其对应的值是字符串

对于它的方法下面是练习

import java.util.Properties;
import java.util.Set;

public class PropertiesTest {
    public static void main(String[] args) {
        Properties prop=new Properties();
        /*
        setProperty方法效果上看跟put方法一样,但是put的key与value都是Object类型,即什么都可以
        而setProperty方法的key与value都只能是string类型,并且它的底层用的就是put
        */
        prop.put("李白","24");
        prop.setProperty("杜甫","茅屋为秋风所破歌");
         /*
        getProperty方法同样类似于get方法,也同样它只能得到key是String类型的String型的value
        而get方法则没有这样的限制
        */
        System.out.println(prop.getProperty("杜甫"));
        System.out.println(prop.get("李白"));

        /*
        stringPropertyNames方法与keyset方法类似,只不过value如果不是String那它对应的key也不会在这个Set集合里
        */
        Set<String> names=prop.stringPropertyNames();
        for(String name:names){
            System.out.println(name);
        }

        Set<Object> peoples= prop.keySet();
        for(Object people:peoples){
            System.out.println(people);
        }
    }
}

二,Properties与IO流结合

方法描述
void load(InputStream inStream)从输入字节流读取属性列表(键和元素对)
void load(Reader reader)从输入字符流读取属性列表(键和元素对)
void store(OutputStream out, String comments)将此属性列表(键和元素对)写入此 Properties表中,以适合于使用load(inputStream)方法的格式写入输出字节流
void store(Writer writer,String comments)将此属性列表(键和元素对)写入此 Properties表中,以适合使用load(Reader)方法的格式写入输出字符流

下面是关于它的练习

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

public class PropertierAndIO {

    public static void writer() throws IOException {
        Properties prop =new Properties();
        FileWriter fw=new FileWriter("data.txt");
        prop.setProperty("杜甫","茅屋为秋风所破歌");
        prop.setProperty("苏轼","赤壁赋");
        prop.setProperty("李白","行路难");
        prop.store(fw,null);
        fw.close();
    }

    public static void reader() throws IOException{
        Properties prop =new Properties();
        FileReader fr=new FileReader("data.txt");
        prop.load(fr);
        fr.close();
        System.out.println(prop);
    }

    public static void main(String[] args) throws IOException {
        writer();
        reader();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值