一、概述

  java.util.Properties集合 extends Hashtable<k,v> implements Map<k,v>

  java.util.Properties 继承与 Hashtable,来表示一个持久的属性集。

  Properties 可保存在流中或从流中加载,Properties集合是一个唯一和IO流相结合的集合。

  它使用键值结构存储数据,属性列表中每个键及其对应值都是一个字符串。Properties集合是一个双列集合,key和value默认都是字符串

二、Properties 类

  1、构造方法

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

  2、基本的存储方法

public Object setProperty(String key, String value) : 保存一对属性。
public String getProperty(String key) :使用此属性列表中指定的键搜索属性值。
public Set<String> stringPropertyNames() :所有键的名称的集合,其中该键及其对应值是字符串。

  Demo:

  public static void main(String[] args) throws IOException {
//创建Properties集合对象
Properties prop = new Properties();
//使用setProperty往集合中添加数据,都是字符串
prop.setProperty("张三","16");
prop.setProperty("李四","17");
prop.setProperty("王五","18");
//prop.put(1,true); //使用stringPropertyNames把Properties集合中的键取出,存储到一个Set集合中
Set<String> set = prop.stringPropertyNames(); //遍历Set集合,取出Properties集合的每一个键
for (String key : set) {
//使用getProperty方法通过key获取value
String value = prop.getProperty(key);
System.out.println(key+"="+value);
}

  3、与流相关的方法

    (1)使用 store 方法,存储数据

      使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储

void store(OutputStream out, String comments)
void store(Writer writer, String comments)

        参数

        OutputStream out:字节输出流,不能写入中文

        Writer writer:字符输出流,可以写中文

        String comments:注释,用来解释说明保存的文件是做什么的,不能使用中文,会产生乱码,默认是 Unicode编码,一般使用“” 空字符串。

      使用步骤

        ① 创建 Properties 对象,添加数据

        ② 创建字节输出流 / 字符输出流对象,构造方法中绑定要输出的目的地。

        ③ 使用 Properties 集合中的方法 store,把集合中的临时数据,持久化写入到硬盘中存储

        ④ 释放资源。

      Demo:

 public static void main(String[] args) throws IOException {
//1.创建Properties集合对象,添加数据
Properties prop = new Properties();
prop.setProperty("张三","16");
prop.setProperty("李四","17");
prop.setProperty("王五","18"); //2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
FileWriter fw = new FileWriter("E:\\prop.txt"); //3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
prop.store(fw,"save data"); //4.释放资源
fw.close(); //prop.store(new FileOutputStream("E:\\prop2.txt"),""); // 写入中文后乱码
}

    (2)使用 load 方法,读取数据

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

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

      参数

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

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

       使用步骤

        ① 创建 Properties 集合对象

        ② 使用Properties集合对象中的方法load读取保存键值对的文件

        ③ 遍历Properties集合

       注意

        ① 存储键值对的文件中,键与值默认的连接符号可以使用=,空格(其他符号)

        ② 存储键值对的文件中,可以使用#进行注释,被注释的键值对不会再被读取

        ③ 存储键值对的文件中,键与值默认都是字符串,不用再加引号

       Demo:

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

Java 之 Properties类 属性集的更多相关文章

  1. Java的Properties类和读取.properties文件

    一..properties文件的作用 Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件.它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必 ...

  2. Java中Properties类的学习总结

    学习目标: 1.认识properties文件,理解其含义,会正确创建properties文件. 2.会使用java.util.Properties类来操作properties文件. 一.认识prope ...

  3. 使用java.util.Properties类读写配置文件

    J2SE 1.5 以前的版本要求直接使用 XML 解析器来装载配置文件并存储设置,虽说也并非难事,相比 java.util.Properties却要做额外的解析工作.而java.util.Proper ...

  4. Java中Properties类

    1 简介: JDK提供的java.util.Properties类继承自Hashtable类并且实现了Map接口,用map来存储key-value数据,所以存入的数据是无序的.其中键和值都是字符串类型 ...

  5. java.util.Properties类 学习笔记

    学习目标:   1.认识properties文件,理解其含义,会正确创建properties文件. 2.会使用java.util.Properties类来操作properties文件. 3.掌握相对路 ...

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

    Properties 类的介绍 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串.一个属性列表可包含另一个属性列 ...

  7. java中Properties类及读取properties中属性值

    本文为博主原创,未经允许不得转载: 在项目的应用中,经常将一些配置放入properties文件中,在代码应用中读取properties文件,就需要专门的类Properties类,通过这个类可以进行读取 ...

  8. 关于Java的Properties类

    Properties类 先来学习下Properties类吧. Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. ...

  9. Java中Properties类知识的总结

    一.Properties类与配置文件 注意:是一个Map集合,该集合中的键值对都是字符串.该集合通常用于对键值对形式的配置文件进行操作. 配置文件:将软件中可变的部分数据可以定义到一个文件中,方便以后 ...

随机推荐

  1. centos7安装python3.6独立的virtualenv环境

    centos7安装python3.6独立的virtualenv环境 1.编译安装python3.6环境# 安装依赖yum -y install zlib-devel bzip2-devel opens ...

  2. pytorch标准化后的图像数据如果反标准化保存

    1.数据处理代码utils.py: 1) # coding:utf- import os import torch.nn as nn import numpy as np import scipy.m ...

  3. Eclipse注释模版

    打开Window->Preferences->Java->Code Style->Code Templates 点击"Import",导入模板codetem ...

  4. Spring Boot与Redis的集成

    Redis是一个完全开源免费的.遵守BSD协议的.内存中的数据结构存储,它既可以作为数据库,也可以作为缓存和消息代理.因其性能优异等优势,目前已被很多企业所使用,但通常在企业中我们会将其作为缓存来使用 ...

  5. Java合并(连接)多个音频

    java sound resource 合并的说法有歧义,为了方便大家搜索到这里,所以用这个标题,实际上是连接(concat),可以理解为字符串concat方法所指定的含义. AudioConcat. ...

  6. JSON 多层对象获取键值

    <html> <script> window.onload = function(){ var json = { "options":{ "nam ...

  7. 05点睛Spring MVC 4.1-服务器端推送

    转发:https://www.iteye.com/blog/wiselyman-2214626 5.1 服务器端推送 SSE(server send event)是一种服务器端向浏览器推送消息的技术, ...

  8. Pycharm use GUP server

    1.配置远程服务器信息 Tools——Deployment——Configuration 然后,点击加号Add一个远程服务信息. 我这里命名为server1:Type选择SFTP:Host即ip地址, ...

  9. Jmeter + Ant 构建接口自动化

    1.首先安装ANT,解压,建议放根目录. 对应安装包已上传 2.环境变量配置新建 ANT_HOMEANT_HOME:解压的路径path环境配置新增Path:%ANT_HOME%\binclasspat ...

  10. jenkins最新版下载安装

    前提:安装配置 jetty 在线下载jetty# wget http://download.eclipse.org/jetty/8.1.17.v20150415/dist/jetty-distribu ...