Java之属性集(Properties类)

Properties概述

java.util.Properties类 继承于 Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,System.getProperties 方法就是返回一个 Properties对象Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。Properties集合是一个唯一和IO流相结合的集合。可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储。可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用。属性列表中每个键及其对应值都是一个字符串。Properties集合是一个双列集合,key和value默认都是字符串。

构造方法

  • public Properties() :创建一个空的属性列表。

基本的存储方法

  • public Object setProperty(String key, String value) : 保存一对属性。底层就是调用 Hashtable 的方法 put。
  • public String getProperty(String key) :使用此属性列表中指定的键搜索属性值。此方法相当于Map集合中的get(key)方法
  • public Set stringPropertyNames() :所有键的名称的集合。此方法相当于Map集合中的keySet方法

与流相关的方法

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. 释放资源

代码举例

package demo05;

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

public class Demo01Properties {
    public static void main(String[] args) throws IOException {
        //1.创建Properties集合对象,添加数据
        Properties prop = new Properties();
        prop.setProperty("赵丽颖", "168");
        prop.setProperty("迪丽热巴", "165");
        prop.setProperty("古力娜扎", "160");

        //2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
        FileWriter fw = new FileWriter("day20\\prop.txt");

        //3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
        prop.store(fw, "save data");

        //4.释放资源
        fw.close();

    }
}

Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用

  • void load(InputStream inStream)
  • void load(Reader reader)

方法参数详解:

  • InputStream inStream:字节输入流,不能读取含有中文的键值对
  • Reader reader:字符输入流,能读取含有中文的键值对

使用步骤:

  1. 创建Properties集合对象
  2. 使用Properties集合对象中的方法load读取保存键值对的文件
  3. 遍历Properties集合

注意:

  • 存储键值对的文件中,键与值默认的连接符号可以使用=,空格(其他符号)
  • 存储键值对的文件中,可以使用#进行注释,被注释的键值对不会再被读取
  • 存储键值对的文件中,键与值默认都是字符串,不用再加引号

代码举例

package demo05;

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

public class Demo02Properties {
    public static void main(String[] args) throws IOException {
        //1.创建Properties集合对象
        Properties prop;
        prop = new Properties();
        //2.使用Properties集合对象中的方法load读取保存键值对的文件
        prop.load(new FileReader("day20\\prop.txt"));
        //prop.load(new FileInputStream("09_IOAndProperties\\prop.txt"));
        //3.遍历Properties集合
        Set<String> set = prop.stringPropertyNames();
        for (String key : set) {
            String value = prop.getProperty(key);
            System.out.println(key + "=" + value);
        }
    }
}

原文地址:https://www.cnblogs.com/wurengen/p/12077679.html

时间: 2024-10-01 06:46:37

Java之属性集(Properties类)的相关文章

spring:使用&lt;prop&gt;标签为Java持久属性集注入值

spring:使用<prop>标签为Java持久属性集注入值 使用 spring 提供的<prop>为Java持久属性集注入值,也就是向 java.util.Properties 对象中注入值. <props> 是简化了的 <map> ,该元素对应配置类型为 java.util.Properties 的对象依赖. 因为Properties 只能指定 String 类型的键和值,所以 <props> 的配置简化很多,只有固定的格式. 1.创建 Te

java的属性只能在类里面 方法外面定义

java的属性只能在类里面 方法外面定义 区别于python:python 既能在类里面(类属性) 又能在方法里面定义属性(实例属性) 原文地址:https://www.cnblogs.com/classmethond/p/9901993.html

【Java基础】Java中的持久属性集Properties

Properties 类的介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串.一个属性列表可包含另一个属性列表作为它的“默认值”:如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表.因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法.但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项.相反,

java读取属性配置文件工具类

import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * * 类: ProUtil <br> * 描述: 属性配置文件读取类 <br> * 作者: poseidon<br> * 版本: 1.0<br> * 时间: 2015-7-17 上午09:20:17 */ public class ProUtil { /* 私有构造方法,防止被实例

Java中使用配置文件——properties类

在java.util 包下面有一个类 Properties,该类主要用于读取项目中的配置文件(以.properties结尾的文件和xml文件). 使用示例: Java类: import java.io.IOException; import java.io.InputStream; import java.util.Properties; import java.util.concurrent.ScheduledExecutorService; import java.util.concurre

java通过配置文件(Properties类)连接Oracle数据库代码示例

1 import java.io.FileInputStream; 2 import java.io.IOException; 3 import java.io.InputStream; 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 import java.sql.Statement; 9 i

Spring系列【09】使用&lt;prop&gt;标签为Java持久属性集注入值

TestUtil.java 1 package com.lh.util; 2 3 import java.util.Properties; 4 5 public class TestUtil { 6 private Properties prop; 7 8 public Properties getProp() { 9 return prop; 10 } 11 12 @Override 13 public String toString() { 14 return "TestUtil [prop

Properties类:属性列表,集合

Properties类的概述(集合) 1. Properties类的特点:        1) 属性列表(键和值)中每个键及其对应值都是一个字符串        2) 可保存在流中或从流中加载,可以对IO流进行操作.把属性集合存到文件中,或从文件中读取所有的属性. 2. 属性文件的格式要求:        属性文件中不能直接汉字,所有的汉字会转成Unicode编码        1) 格式:属性名=属性值        2) 每个属性占一行        3) 注释:以#号开头的行是注释行   

详解 Properties类

(请观看本人博文--<详解 I/O流>) Properties类: 概念: Properties 类的对象 是 一个持久的属性集 Properties 可 保存在流中 或 从流中加载 属性列表中每个键及其对应值都是一个字符串 Properties类的 父类是Hashtable 属于双列集合,这个集合中的键和值都是字符串 Properties类 不能指定泛型 现在,本人来说明一下本人的见解: 在本人之前的博文中,相信大家已经了解到了properties文件的许多知识. 但是,在学习到此类的时候,