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来写, ...
随机推荐
- nopCommerce 3.9 大波浪系列 之 路由扩展 [多语言Seo的实现]
一.nop种的路由注册 在Global.asax,Application_Start()方法中会进行路由注册,代码如下. public static void RegisterRoutes(Route ...
- jenkins+ANT+jmeter 接口测试环境搭建
目的 jmeter很早就接触了,最近又在接触项目的时候整了一下.写这篇博客主要有两个目的 1,为了给自己搭建jmeter做一个总结. 2,在部署过程中遇到过一些坑,在这分享出来,也希望能给需要的人一个 ...
- centos下安装并配置tomcat
1,安装jdk,centos默认安装了java-openjdk的环境,但是不带JDK,运行 yum install java-1.7.0-openjdk java-1.7.0-openjdk-deve ...
- (转)log4j(三)——如何控制不同级别的日志信息的输出?
一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 package test.log4j.test3; import org.apac ...
- plsql修改表字段alter
场景:在生产过程中有时候需要不同的环境中修改表字段,使用sql语句比较方便! 1 演示 --添加字段的语法 alter table tablename add (column datatype [de ...
- Python之系统交互(subprocess)
本节内容 os与commands模块 subprocess模块 subprocess.Popen类 总结 我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互,比如Linux平台下的shell ...
- Modular javascript(javascript模块化编程)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 为什么是Spring Boot
原文:https://dzone.com/articles/why-springboot 作者:Siva Prasad Reddy Katamreddy 译者:Oopsguy 本文介绍将各种Sprin ...
- css的选择器的优先级
css覆盖是在打代码的时候,开发者很普通很普通,也是很经常经常用到的,但是容易混淆他们之间的优先级. [][][] 第一个是id,第二个是class,第三个是元素名.有一个就加一.比较这个三位数的大小 ...
- 原理Lambda表达式
http://www.kingreatwill.com/ (1)源起 .net的设计者发现在使用匿名方法时, 仍旧有一些多余的字母或单词的编码工作 比如delegate关键字 于是进一步简化了匿名方法 ...