属性集合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. 自学Python之路-Python网络编程

    自学Python之路-Python网络编程 自学Python之路[第一回]:1.11.2 1.3

  2. 【BZOJ5292】[BJOI2018]治疗之雨(高斯消元)

    [BZOJ5292][BJOI2018]治疗之雨(高斯消元) 题面 BZOJ 洛谷 题解 设\(f[i]\)表示剩余\(i\)点生命时的期望死亡的次数. 考虑打\(k\)次下来脸上被打了\(i\)下的 ...

  3. 「浙大ACM」图森未来杯游记一篇以及简易口胡题解

    前言 蒟蒻有参加了ACM比赛,这一次有适合HY和慕容宝宝大佬一起比的,他们好巨啊,把我带飞了. 又是窝掌机,QAQ,他们仗着自己巨,就欺负窝... 我又打了\(4\)个小时的代码,而且那个键盘太恶心了 ...

  4. cf1076E Vasya and a Tree (线段树)

    我的做法: 给询问按$deep[v]+d$排序,每次做到某一深度的时候,先给这个深度所有点的值清0,然后直接改v的子树 官方做法比较妙妙: dfs,进入v的时候给$[deep[v],deep[v]+d ...

  5. 覆盖的面积 HDU - 1255 (扫描线, 面积交)

    求n个矩阵面积相交的部分,和求面积并一样,不过这里需要开两个数组保存覆盖一次和覆盖两次以上的次数的部分,还是模板,主要注意点就是pushup部分,如果我已经被两次覆盖,那我的两个数组在这个root点的 ...

  6. js常用的正则表达式

    一.校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ ...

  7. JS小积累(一)— 判断在线离线

    JS小积累-判断在线离线 作者: 狐狸家的鱼 Github: 八至 if(window.navigator.onLine==true){ console.log('online'); ... } el ...

  8. Docker普通用户不使用sudo提权

    解决方法 sudo groupadd docker 添加Docker用户组 sudo gpasswd -a ${USER} docker 添加你的用户到Docker用户组 reboot 重启系统.也可 ...

  9. ImageMagick: DrawImage(Image*,DrawInfo*) 绘制填充图片时卡住的原因分析

    今天傍晚在测试的时候无意发现有两个动画会卡住,正常情况下,20秒就完成的操作,突然卡住. CPU:95%+,经过30 - 50秒左右后,程序又能正常的向下执行,结果是对的. 这种情况不是每次都发生,有 ...

  10. (九)逻辑运算,order by,desc

    逻辑运算 AND,OR,NOT ......where 表达式1  and 表达式2: ......where 表达式2  and 表达式1: SQL优化: SQL在解析where时是从右向左解析的. ...