Java I/O---Properties类(持久化键值对)
1.Properties类简介
Properties类(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用"#"来注释。
#person information |
Properties的父类为 HashTable类。
Propertise类常用方法: (1)setProperty ( String key, String value) : 调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置 键 - 值对。 (2)getProperty ( String key):用指定的键在此属性列表中搜索属性。也就是通过参数 key ,得到 key 所对应的 value。 (3)load ( InputStream inStream):从输入流中读取属性列表(键和元素对)。 (4)store ( OutputStream out, String comments):将Properties 表中的属性列表(键和元素对)写入输出流。comments为注释参数。该方法将键 - 值对写入到指定的文件中去。 (5)list(System.out):打印配置文件信息到控制台。 (6)clear (),清除所有装载的 键 - 值对。该方法在基类中提供。 |
2.properties方法演示
public class PropertiesDemo { /** * Properties 常用到配置文件参数 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub // methodDemo(); // methodDemo2(); methodDemo3(); } private static void methodDemo3() { // TODO Auto-generated method stub Properties prop = new Properties(); //创建输ru流对象 FileInputStream inStream = null; try { inStream = new FileInputStream("H:\\workspace\\Testfile\\info.properties"); prop.load(inStream);//加载数据 prop.setProperty("name", "zhangsan");//修改参数 prop.list(System.out);//打印 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ if(inStream != null){ try { inStream.close(); } catch (IOException e) { // TODO Auto-generated catch block throw new RuntimeException(); } } } } /** * 演示properties持久化 */ private static void methodDemo2() { // TODO Auto-generated method stub Properties prop = new Properties(); prop.setProperty("name", "zhangsan"); prop.setProperty(""); //创建输出流对象 FileOutputStream fos = null; try { fos = new FileOutputStream("H:\\workspace\\Testfile\\info.properties"); prop.store(fos, "person information");//第二个参数为注释信息 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ if(fos != null){ try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block throw new RuntimeException(); } } } } /** * 演示setProperty()和prop.list(System.out) */ private static void methodDemo() { // TODO Auto-generated method stub Properties prop = new Properties(); prop.setProperty("name", "zhangsan"); prop.setProperty(""); prop.list(System.out);//直接使用list方法打印输出 /* Set<String> set = prop.stringPropertyNames(); for(String key : set){ String value = prop.getProperty(key); System.out.println(key+":"+value); }*/ } }
2017-12-30 内容来自创智播客课程
Java中Properties类的操作 - bakari - 博客园
Java I/O---Properties类(持久化键值对)的更多相关文章
- Java学习:Properties类
Java学习:Properties类 学习目标 认识properties文件,理解其含义,会正确创建properties文件. 会使用java.util.Properties类来操作propertie ...
- Java中的Properties类
目录 Java中的Properties类 前言 主要方法 读取Properties文件 相关实例 Java中的Properties类 前言 Java中的Properties类属于配置文件,以键值对的方 ...
- Java Dictionary 类存储键值
字典(Dictionary) 字典(Dictionary) 类是一个抽象类,它定义了键映射到值的数据结构. 当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用Dictionary. 当 ...
- JAVA基础之Properties类、序列化流及打印流、commons-IO
个人理解: Properties类是个存储String类型的键值对的集合类,可以用其存储一些关键的账号密码什么的,同时后面的注释可以很好的帮助理解,但是需要注意的是其文件中不能出现其他的符号:序列化与 ...
- java编程中Properties类的具体作用和使用
如果不熟悉 java.util.Properties类,那么现在告诉您它是用来在一个文件中存储键-值对的,其中键和值是用等号分隔的.(如清单 1 所示).最近更新的java.util.Properti ...
- java 21 - 14 Properties类
类 Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. 注意:Properties是Has ...
- java编程中Properties类的具体作用和使用!
如果不熟悉 java.util.Properties类,那么现在告诉您它是用来在一个文件中存储键-值对的,其中键和值是用等号分隔的.(如清单 1 所示).最近更新的java.util.Properti ...
- Java API 之 Properties 类
1.简介 在项目中我们经常看到一种格式极其干净的配置文件,如:config.properties.在Java的体系结构中也提供了API对properties文件进行读取和写入等操作,即:Propert ...
- 《java JDK7 学习笔记》之键值对Map
一.常用的Map操作类 1.使用HashMap Map也支持泛型语法,泛型的Map实例: 建立Map操作对象时,可以使用泛型语法指定键与值的类型.上图键使用String,值也使用String类型.要建 ...
随机推荐
- HTML页面加载异常,按F12调试后居然又好了的解决办法!
原因: 你的代码中获取数据那一段应该是有console控制台调用的代码,一般应该是console.log之类的,就是因为这句话在没开F12的时候,console是个undefined的东西就卡在那啦. ...
- ionic3中NavController类push setRoot相关问题解决
今天在测试app的时候发现,登录页跳转到首页后,会加载两次数据.百思不得其解,查看了所有代码也没能发现问题.最终抱着尝试的态度,动了如下代码: if (suc) { //this.navCtrl.pu ...
- continue,break以及加上标签的使用(goto思路)
代码例子在java编程思想70-73页.这里只是想做做总结 java中需要用到标签的唯一理由就是因为由循环嵌套的存在,而且想从多层嵌套循环中break或者continue. 因此,标签只能放在循环前面 ...
- 【17-06-19】Java进阶自测:面向对象基础知识掌握了吗?(附答案及个人解析)
描述 题目和答案来自于阿里云大学 - 知乎专栏 题目 现在有如下一段代码 public class Test { public int aMethod() { static int i=0; i++; ...
- P1040 加分二叉树
转自:(http://www.cnblogs.com/geek-007/p/7197439.html) 经典例题:加分二叉树(Luogu 1040) 设一个 n 个节点的二叉树 tree 的中序遍历为 ...
- CCF-201312-3-最大的矩形
问题描述 试题编号: 201312-3 试题名称: 最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ ...
- CenterOS 7 基础命令学习
CentOS 7 命令 网络配置 nmcli(NetworkManageCommandLineInterface)查看网卡 nmtui(NetworkManageTextUserInterface)网 ...
- sqoop实现关系型数据库与hadoop之间的数据传递-import篇
由于业务数据量日益增长,计算量非常庞大,传统的数仓已经无法满足计算需求了,所以现在基本上都是将数据放到hadoop平台去实现逻辑计算,那么就涉及到如何将oracle数仓的数据迁移到hadoop平台的问 ...
- MySQL基数(索引基数)
基数是数据列所包含的不同值的数量.例如,某个数据列包含值1.3.7.4.7.3,那么它的基数就是4. 索引的基数相对于数据表行数较高(也就是说,列中包含很多不同的值,重复的值很少)的时候,它的工作效果 ...
- js图片懒加载(滚动加载)是否生效
一.什么是懒加载? 对未出现在视野范围内的图片先不进行加载,等到出现在视野范围才去加载. 二.为什么使用懒加载? 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数. 理论性知识大家都有自 ...