Properties类随笔
1. 体系介绍
Properties类继承自HashTable,勉强属于集合框架体系一员,键值对形式存储数据,当然键肯定是唯一的,底层哈希表保证键的唯一,此类一般用于表示配置文件.
2. 基本用法
由于此类继承HashTable,所以基本的集合操作还是相同的.比如put(),get()等,当然这个肯定不是常用的,在此只介绍Properties特殊的功能.
- Object setProperty(String key, String value) : 存入数据.严格要求键值对类型都是字符串
- String getProperty(String key) :按照键取数据,.严格要求键值对类型都是字符串
- Enumeration<?> propertyNames() :获取所有键的列表
- Set<String> stringPropertyNames() : 获取所有键的列表
- void store(OutputStream out, String comments) : 与IO结合,使用字节输出流以键值对形式持久到磁盘,第二个参数是描述..可null
- void store(Writer writer, String comments) : 与IO结合,使用字符输出流以键值对形式持久到磁盘,第二个参数是描述..可null
- void load(InputStream inStream) : 与IO结合,使用字节输入流从磁盘加载到Properties对象中
- void load(Reader reader) : 与IO结合,,使用字符输入流从磁盘加载到Properties对象中
package com.io; import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Writer;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Set; /**
* 演示Properties类的使用
* @author 王庆华
* @age 18
* @DateTime 2017年8月31日 16:08:56
*/
public class PropertiesDemo2 {
public static void main(String[] args) throws IOException {
Properties pro1 = new Properties(); //Object setProperty(String key, String value):插入元素
pro1.setProperty("name", "陆离");
pro1.setProperty("age", "19"); //String getProperty(String key) :获取元素
System.out.println(pro1.getProperty("name"));//陆离 //Enumeration<?> propertyNames():获取所有键的集合
Enumeration<?> names = pro1.propertyNames();
while(names.hasMoreElements()){
System.out.println(names.nextElement());//age name
} //Set<String> stringPropertyNames() :获取所有String类型的键的集合
Set<String> names2 = pro1.stringPropertyNames();
System.out.println(names2);//[age, name] //void list(PrintStream out) :将Properties对象的所有键按照字节打印流输出写入到磁盘
// PrintStream ps = new PrintStream("pro.properties");
// pro1.list(ps);
// ps.close(); //void list(PrintWriter out) :使用字节流
// PrintWriter pw = new PrintWriter("pro.properties");
// pro1.list(pw);
// pw.close(); // void store(OutputStream out, String comments) : 与IO结合,使用字节输出流以键值对形式持久到磁盘,第二个参数是描述..可null
OutputStream out = new FileOutputStream("pro.properties");
pro1.store(out, "测试demo");
out.close();
/*
* pro.properties文件内容如下:
* #\u6D4B\u8BD5demo
* #Thu Aug 31 15:56:53 CST 2017
* age=19
* name=\u9646\u79BB
*/ // void store(Writer writer, String comments) : 与IO结合,使用字符输出流以键值对形式持久到磁盘,第二个参数是描述..可null
Writer wr = new FileWriter("pro.properties");
pro1.store(wr, null);
wr.close(); //void load(InputStream inStream) : 与IO结合,使用字节输入流从磁盘加载到Properties对象中
Properties pro2 = new Properties();
pro2.load(new BufferedInputStream(new FileInputStream("pro.properties")));
System.out.println(pro2); // void load(Reader reader) : 与IO结合,,使用字符输入流从磁盘加载到Properties对象中
Properties pro3 = new Properties();
pro3.load(new BufferedReader(new InputStreamReader(new FileInputStream("pro.properties"))));
System.out.println(pro3);
}
}
总结
此类很常用
Properties类随笔的更多相关文章
- Java中Properties类知识的总结
一.Properties类与配置文件 注意:是一个Map集合,该集合中的键值对都是字符串.该集合通常用于对键值对形式的配置文件进行操作. 配置文件:将软件中可变的部分数据可以定义到一个文件中,方便以后 ...
- java编程中Properties类的具体作用和使用
如果不熟悉 java.util.Properties类,那么现在告诉您它是用来在一个文件中存储键-值对的,其中键和值是用等号分隔的.(如清单 1 所示).最近更新的java.util.Properti ...
- 【JAVA Properties类概述】
一.概述. 之前说过,该对象是和IO流相结合的技术,所以和IO流结合在一起来讲比较合适. public class Propertiesextends Hashtable<Object,Obje ...
- java 21 - 14 Properties类
类 Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. 注意:Properties是Has ...
- Java中Properties类的操作
知识学而不用,就等于没用,到真正用到的时候还得重新再学.最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经好久没用了,而这些模拟器大多用Java来写,外加 ...
- Properties类一些常用的用法
直接上代码: package test.properties; import java.io.File; import java.io.FileInputStream; import java.io. ...
- Java常用类之Properties类
1.特性 Properties类表示了一个持久的属性集,可保存在流中或从流中加载,实现内存和文件的交互.Properties继承了Hashtable<Object,Object>类,可以使 ...
- Java的Properties类和读取.properties文件
一..properties文件的作用 Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件.它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必 ...
- Java中Properties类的操作配置文件
知识学而不用,就等于没用,到真正用到的时 候还得重新再学.最近在看几款开源模拟器的源码,里面涉及到了很多关于Properties类的引用,由于Java已经好久没用了,而这些模拟器大多用 Java来写, ...
随机推荐
- dotpeek的导出
在开始写之前先说明下,搜了很久的度娘,就是没找到dotpeek的导出功能,····,看来用的人不多, ------------------------------------------------- ...
- runtime实现对象存储型数据库——LHDB
前言 最近在GitHub上看了一份关于基于runtime封装的对象存储型数据库的开源代码,觉得非常值得分享记录一下,在IOS中对数据库的操作一般通过CoreData和SQLite,CoreData 虽 ...
- jmeter断言:断言条件之间是“或”的关系
有时,我们在做断言时,需要同时满足一系列条件,这在jmeter自带响应断言中已经实现: 有时,同一请求在不同时间,返回的响应是不同的,而这都是正确的响应,也就是说,我们判断的条件之间是或的关系,此时, ...
- (转)centos7安装telnet服务
场景:在进行Telnet测试时候,发现无法连接,所以还得把这个软件也安装了 1 CentOS7.0 telnet-server 启动的问题 解决方法: 先检查CentOS7.0是否已经安装以下两个 ...
- Spring mybatis源码篇章-SqlSessionFactoryBean
前言:通过实例结合源码的方式解读,其中涉及到的文件来自于博主的Github毕设项目SchoolActivity_WxServer,引用的jar包为mybatis-spring-1.3.0.jar Sp ...
- global,$GLOBALS[' '] 全局, 浮动float跟margin的注意事项
$a; global只能声明变量为全局,不能赋值,否则报错未定义:global $a; 相对于$GLOBALS['a'],写法是这样的,所有定义过的变量都存在这里: //浮动float跟margin的 ...
- myeclipse项目部署到idea常见问题
由于myeclipse是付费产品,经过几次破解不成功后,遂弃之,转投IntelliJ IDEA门下.但这就出现一个问题了,以前用的eclipse.myeclipse以及spring tools sui ...
- ExtJs的expand和collapse
最近在研究ExtJs的窗口组件(Ext.window),关于扩展显示expand和折叠显示collapse的一点心得记录一下,以便后查. var win2 = new Ext.window({ id ...
- 一份关于webpack2和模块打包的新手指南
webpack已成为现代Web开发中最重要的工具之一.它是一个用于JavaScript的模块打包工具,但是它也可以转换所有的前端资源,例如HTML和CSS,甚至是图片.它可以让你更好地控制应用程序所产 ...
- java 各种去空格的方法
String str =" dgd fdgd "; 方法一:str = str.trim();//去前后空格 返回:dgd fdgd 方法二:str = str.repla ...