属性集合java.util.Properties

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

Properties类表示一个持久的属性集,可以保存在流中,或者从流中加载。是唯一一个和IO流相结合的集合。Properties集合是一个双列集合,key和value默认都是字符串

方法

方法 作用
void store(OutputStream out, String comments) 把集合的临时数据,持久化写到硬盘存储
void load(Writer writer, String comments) 把硬盘的文件(键值对),读取到集合中使用

store方法使用步骤

  • 创建Properties对象,添加数据
  • 创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
  • 使用properties对象的store方法,把集合的临时数据持久化写入到硬盘
  • 释放资源
package cn.zhuobo.day14.aboutProperties;

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("aaa","11");
properties.setProperty("bbb", "22");
properties.setProperty("ccc", "33"); // 使用字符输出流
FileWriter fw = new FileWriter("/home/zhuobo/Desktop/dir/prop.txt");
properties.store(fw, "store data"); // 使用字节输出流的匿名对象
properties.store(new FileOutputStream("/home/zhuobo/Desktop/dir/prop1.txt"), ""); Set<String> keySet = properties.stringPropertyNames();
for (String key : keySet) {
System.out.println(properties.getProperty(key));
}
fw.close();
}
}

键值对写入文件,键与值之间使用空格分隔也是和等号一样的效果,#后面的是注释

load方法使用

  • 创建Properties对象
  • 使用Properties对象的load方法读取保存键值对的文件
  • 遍历Properties集合查看
// 创建Properties对象
Properties properties1 = new Properties(); // 使用Properties对象的load方法读取保存键值对的文件
properties1.load(new FileReader("/home/zhuobo/Desktop/dir/prop1.txt")); // 遍历Properties集合查看
Set<String> keySet = properties.stringPropertyNames();
for (String key : keySet) {
System.out.println(key + "=" + properties.getProperty(key));
}

该集合有些特有的处理字符串的方法:

方法 作用
Object setProperty(String key, String value) 调用Hashtable的put方法
String getProperty(String key) 相当于Map中的get方法,通过键获得值
Set StringPropertyNames() 返回此属性列表的键值,其中该键值对应值都是字符串,此方法相当于Map集合的keySet方法
package cn.zhuobo.day14.aboutProperties;

import java.util.Properties;
import java.util.Set;
// 注意使用Properties集合特有的处理字符串的方法
public class Demo01Properties {
public static void main(String[] args) {
Properties properties = new Properties();
properties.setProperty("aaa","11");
properties.setProperty("bbb", "22");
properties.setProperty("ccc", "33"); Set<String> keySet = properties.stringPropertyNames();
for (String key : keySet) {
System.out.println(properties.getProperty(key));
}
*

属性集合java.util.Properties的更多相关文章

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

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

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

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

  3. java.util.Properties工具类

    import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import ...

  4. Java.util.properties读取配置文件分析

    Java.util.properties API链接: https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html Clas ...

  5. Android中使用java.util.Properties犯的错

    今天尝试使用java.util.Properties来保存应用配置,然而遇到了好几个问题,对于熟悉此内容的来说可能都是猪一样的错误,但难免有像我一样的新手再次遇到,希望此文能有所帮助. 错误1 jav ...

  6. JavaSE配置文件java.util.Properties【单例模式Singleton】

    如果不是放在src文件夹里面,则: p.load(new BufferedInputStream(new FileInputStream("tank.properties"))); ...

  7. 关于java.util.Properties读取中文乱码的正确解决方案(不要再用native2ascii.exe了)

    从Spring框架流行后,几乎根本不用自己写解析配置文件的代码了,但近日一个基础项目(实在是太基础,不能用硕大繁琐的Spring), 碰到了用java.util.Properties读取中文内容(UT ...

  8. 【Java笔记】配置文件java.util.Properties类的使用

    配置文件的路径:项目名/src/main/resources/mmall.properties mmall.properties的内容是键值对.例如假设写了ftp服务器的一些信息. ftp.serve ...

  9. freemarker遍历java.util.Properties

    java.util.Properties类 学习笔记 http://trans.blog.51cto.com/503170/110227/ FreeMarker代码 <#list systemP ...

随机推荐

  1. 「SHOI2016」黑暗前的幻想乡 解题报告

    「SHOI2016」黑暗前的幻想乡 sb题想不出来,应该去思考原因,而不是自暴自弃 一开始总是想着对子树做dp,但是状态压不起去,考虑用容斥消减一些条件变得好统计,结果越想越乱. 期间想过矩阵树定理, ...

  2. luogu5024 [NOIp2018]保卫王国 (动态dp)

    可以直接套动态dp,但因为它询问之间相互独立,所以可以直接倍增记x转移到fa[x]的矩阵 #include<bits/stdc++.h> #define CLR(a,x) memset(a ...

  3. 用foobar进行码率转换 适用与sacd-r转成低码率

    之前下载了不少高清音频,有黑胶转录的也有母带文件.这些高清音频大都是24bit,采样率96khz或者88.2khz或者更高.而我想将部分精品专辑刻录成cd.首先我需要将这些文件转换为16bit,44. ...

  4. bzoj1398 Necklace

    关于最小表示法的模板题. 最小表示法:把一个字符串表示为它的的所有循环同构字符串中的字典序最小者. 直接参见代码中的函数getmin()获取精髓 #include <cstdio> #in ...

  5. 洛谷P4242 树上的毒瘤

    解:首先有个套路是一条边的权值是[两端点颜色不同].这个用树剖直接维护,支持修改. 每次询问建虚树,查询虚树上每条边的权值.然后树形DP,用开店的方法,每个点链加链查. #include <bi ...

  6. PHP魔术方法大全

    十六个魔术方法详解如下 说明:PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的 ...

  7. canvas绘制爱心的几种方法

    第一种方法:桃心形公式 代码实现的一种方法 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  8. Image.fromarray的用法

    简而言之,就是实现array到image的转换 详细参考以下博客 https://blog.csdn.net/ybcrazy/article/details/81206411

  9. gradle 的jar下载到哪里了

    很好奇 gradle 的jar下载到哪里了,好顿翻,原来在C:\Users\(你的用户名)\.gradle\caches\modules-2\files-2.1目录下,使用gradle引用lib会先查 ...

  10. python3.5和python3.6关于json模块的区别

    python3.5中 无法反序列化bytes数据必须decode成str才可以 >>> import json >>> a = b'{"username& ...