Properties类

/*
*
* java. util. Properties继承于Hashtable,来表示一个持久的属性集。
* 它使用键值结构存储数据,每个键及其对应值都是一个字符串。
* 该类也被许多Java类使用,比如获取系统属性时,System.getProperties方法就是返回一个Properties对象。
* Properties类构造方法
* public Properties() :创建一个空的属性列表。
* 基本的存储方法
* public 0bject setProperty(String key, String value):保存一对属性。
* public String getProperty(String key) :使用此属性列表中指定的键搜索属性值。
* public Set stringPropertyNames() :所有键的名称的集合。
*
*/

创建属性集对象及通过键获取值

package SE04.n4Properties;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

public class Demo01Properties {
	public static void main(String[] args) throws IOException {
       //创建属性集对象
       Properties properties = new Properties();//添加键值对元素
       properties.setProperty("filename", "a.txt");
       properties.setProperty("length", "209385038");
       properties.setProperty("location", "D:\\a.txt");
       File f=new File("folder\\io\\properties\\a.properties");
       System.out.println(properties);
       //通过键,获取属性值
       System.out.println(properties.getProperty("filename"));
       System.out.println(properties.getProperty("length"));
       System.out.println(properties.getProperty("location"));//遍历属性集,获取所有键的集合
       Set<String> keys = properties.stringPropertyNames();//打印键值对
       for (String key : keys) {
           System.out.println(key + " -- " + properties.getProperty(key));
       }
   }
}

Load方法

/*
*与流相关的方法
* public void load(InputStream inStream);
*从字节输入流中读取键值对,参数中使用了字节输入流,
*通过流对象,可以关联到某文件上,这样就能够加载文本中的数据
*/

package SE04.n4Properties;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

public class Demo02Load {
    public static void main(String[] args) {
        
//        创建属性集对象
        Properties properties=new Properties();
        File f=new File("folder\\io\\properties");
        f.mkdirs();//创建目录
        File f1=new File(f,"a.properties");//指定读取的目标文件
        try {
            f1.createNewFile();//如果没有就创建目标文件
            properties.load(new FileInputStream(f1));//下载目标文件中的keyAndvalue
        } catch (IOException e) {
            e.printStackTrace();
        }
        Set<String> keys=properties.stringPropertyNames();//获取键值集合
        for (String key :
                keys) {//遍历键值,输出keyAndvalue
            System.out.println(key + "--"+properties.getProperty(key));
        }

    }
}

store方法

把setProperty()后放在缓冲区里的keyAndvalue写入到目标文件中

package SE04.n4Properties;

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

public class Demo03Store {
    public static void main(String[] args) {
        Properties p1=new Properties();
        try {
            p1.load(new FileReader("folder\\io\\properties\\a.properties"));
            //先写一个匿名FileReader用来加载配置文件a.properties
            p1.setProperty("name2","Jack");
            p1.setProperty("name1","Jacx");
            p1.setProperty("name3","AJacX");
            //给a.properties中添加新的内容
            FileWriter fileWriter=new FileWriter(new File("folder\\io\\properties\\a.properties"));
            //设置FileWriter时若给第二个参数true,会在原有的内容上重写原内容和新内容
            p1.store(fileWriter,"list:");
            //这里的第二个参数时用来写注释的。在Proterties中的注释是“#”
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值