Properties集合

本文详细介绍了如何使用Java的Properties类进行属性文件的读写操作。通过示例代码展示了如何加载、遍历Properties集合,以及如何将数据持久化存储到文件中。涉及关键方法如load、store,并强调了文件中键值对的格式和注意事项。
摘要由CSDN通过智能技术生成

package mydemo.day9.demo07Prop;

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

/*
java.util.Properties集合 extends Hashtable<k,v> implements Map<k,v>
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。
Properties集合是一个唯一和IO流相结合的集合
可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用

属性列表中每个键及其对应值都是一个字符串。
    Properties集合是一个双列集合,key和value默认都是字符串

*/
public class Demo01Properties {
public static void main(String[] args) throws IOException {
// show1();
// show2();
show3();
}

private static void show3() throws IOException {
    /*
    可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用
    void load(InputStream inStream)
    void load(Reader reader)
    参数:
        InputStream inStream:字节输入流,不能读取含有中文的键值对
        Reader reader:字符输入流,能读取含有中文的键值对
    使用步骤:
        1.创建Properties集合对象
        2.使用Properties集合对象中的方法load读取保存键值对的文件
        3.遍历Properties集合
    注意:
        1.存储键值对的文件中,键与值默认的连接符号可以使用=,空格(其他符号)
        2.存储键值对的文件中,可以使用#进行注释,被注释的键值对不会再被读取
        3.存储键值对的文件中,键与值默认都是字符串,不用再加引号
 */
    //1.创建Properties集合对象
    Properties prop = new Properties();
    //2.使用Properties集合对象中的方法load读取保存键值对的文件
    prop.load(new FileReader("E:\\Java-learn\\JavaSeniorCode1\\day9-IOAndProperties\\src\\mydemo\\day9\\上课练习7.txt"));
    //3.遍历Properties集合
    Set<String> set = prop.stringPropertyNames();
    for (String key : set) {
        String value = prop.getProperty(key);
        System.out.println(key+"="+value);
    }
}
private static void show2() throws IOException {
    /*
    可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
    void store(OutputStream out, String comments)
    void store(Writer writer, String comments)
    参数:
        OutputStream out:字节输出流,不能写入中文
        Writer writer:字符输出流,可以写中文
        String comments:注释,用来解释说明保存的文件是做什么用的
                不能使用中文,会产生乱码,默认是Unicode编码
                一般使用""空字符串

    使用步骤:
        1.创建Properties集合对象,添加数据
        2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
        3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
        4.释放资源
 */
    //1.创建Properties集合对象,添加数据
    Properties prop = new Properties();
    prop.setProperty("赵丽颖","168");
    prop.setProperty("迪丽热巴","165");
    prop.setProperty("古力娜扎","160");
    //2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
    /*FileWriter fw = new FileWriter("E:\\Java-learn\\JavaSeniorCode1\\day9-IOAndProperties\\src\\mydemo\\day9\\上课练习7.txt");
    //3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
    prop.store(fw,"save data");*/
    //使用匿名对象方式
    prop.store(new FileWriter("E:\\Java-learn\\JavaSeniorCode1\\day9-IOAndProperties\\src\\mydemo\\day9\\上课练习7.txt")," ");
    //4.释放资源

// fw.close();
}

private static void show1(){
    /*
    可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
    void store(OutputStream out, String comments)
    void store(Writer writer, String comments)
    参数:
        OutputStream out:字节输出流,不能写入中文
        Writer writer:字符输出流,可以写中文
        String comments:注释,用来解释说明保存的文件是做什么用的
                不能使用中文,会产生乱码,默认是Unicode编码
                一般使用""空字符串

    使用步骤:
        1.创建Properties集合对象,添加数据
        2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
        3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
        4.释放资源
 */
    //1.创建Properties集合对象
    Properties prop = new Properties();
    //2.使用setProperty往集合中添加数据
    prop.setProperty("张三","168");
    prop.setProperty("李四","165");
    prop.setProperty("王五","170");
    //使用stringPropertyNames把Properties集合中的键取出,存储到一个Set集合中
    Set<String> set = prop.stringPropertyNames();
    //遍历Set集合,取出Properties集合的每一个键
    for (String s : set) {
        //使用getProperty方法通过key获取value
        String value = prop.getProperty(s);
        System.out.println(s+"="+value);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值