一、properties文件简介

java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"(推荐)或"键:值"的格式,在properties文件中,可以用"#"(推荐)或者"//"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。(注意:其实properties文件相当于只是定义了一种文件格式,在实际应用中后缀名可以改为其他任何符合后缀名规范的名称,比如.cfg,.ini等后缀名)

现在定义一个databaseInfo.properties文件,如下:
#################################
#   财务系统配置文件
#   2014年11月11日
#################################
#   Oracle驱动
driver=oracle.jdbc.driver.OracleDriver
#   Oralc数据库地址
url=jdbc:oracle:thin:@192.168.2.3:1521:orcl
#   用户名
username=cwdb
#   密码
password=cwdb
#################################

注意事项:
当我们在properties文件中编辑中文字符后,会提示无法保存的问题,由于myEclipse中properties资源文件的默认编码格式是ISO-8859-1,此时就需要修改默认的编码格式,打开myEclipse的Window->Perferences->General->ContentTypes,找到Text->Java Properties File选中,将下面的Default encoding修改为:UTF-8,然后点击右边的Update按钮,最后点击OK按钮即可,如图:

二、Properties类的重要方法
Properties 类存在于包Java.util中,该类继承自 Hashtable (即:public class java.util.Properties extends java.util.Hashtable{...})
1. getProperty( String  key) ,用指定的键在此属性列表中搜索属性。也就是通过参数 key ,得到 key 所对应的 value。
2. load( InputStream  inStream),从输入流中读取属性列表(键和元素对)。通过对指定的文件(比如说上面的 databaseInfo.properties 文件)进行装载来获取该文件中的所有键-值对。以供 getProperty ( String  key) 来搜索。

3. setProperty( String  key, String  value),调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置键-值对。
4. store( OutputStream  out, String  comments),以适合使用 load 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。与 load 方法相反,该方法将键 - 值对写入到指定的文件中去。

5. clear(),清除所有装载的键-值对。该方法在基类中提供。

三、Java对Properites类的常用操作

 import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set; /**
* @Description:Java对Properites类的常用操作
*/
public class PropDemo { // 根据key读取value
public String readValue(String filePath, String key) {
Properties props = new Properties();
try {
InputStream in = this.getClass().getResourceAsStream("/"+filePath);
props.load(in);
String value = props.getProperty(key);
System.out.println(key + "=" + value); in.close();
return value;
} catch (Exception e) {
e.printStackTrace();
return null;
}
} // 写入properties信息
public void writeProperties(String filePath, String parameterName, String parameterValue) {
Properties prop = new Properties();
try {
InputStream fis = this.getClass().getResourceAsStream("/"+filePath);
// 从输入流中读取属性列表(键值对)
prop.load(fis); OutputStream fos=new FileOutputStream(this.getClass().getResource("/"+filePath).getPath());
// 设置新的键值对
prop.setProperty(parameterName, parameterValue);
// 将此 Properties 表中的属性列表(键和元素对)写入输出流
prop.store(fos, "add key: '" + parameterName + "' value:" + parameterValue); fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} // 读取properties的全部信息
public void readProperties(String filePath) {
Properties props = new Properties();
try {
InputStream in = this.getClass().getResourceAsStream("/"+filePath);
props.load(in); // 使用Set集合取得所有key值
Set keyValue = props.keySet();
// 使用while循环遍历
Iterator it = keyValue.iterator();
while (it.hasNext()){
String key = (String) it.next();
String Property = props.getProperty(key);
System.out.println(key + "=" + Property);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) { // 根据key读取value
new PropDemo().readValue("databaseInfo.properties", "url"); // 写入properties信息
new PropDemo().writeProperties("databaseInfo.properties", "databaseType", "oracle"); // 读取properties的全部信息
new PropDemo().readProperties("databaseInfo.properties");
}
}

注意事项:
java的properties文件一般放到classpath下面,这样程序能方便读取到,有关classpath实际上就是java类或者库的存放路径,即java字节码.class文件的存放路径。在java工程中,properties与class文件放到一块。在web工程中,最简单的方法是放到web应用的WEB- INF\classes目录下即可,也可以放在其他文件夹下面。

properties文件简介及其常用Java操作的更多相关文章

  1. [b0014] HDFS 常用JAVA 操作实战

    目的: 学习用java进行的常用hdfs操作 参考: [b0002] Hadoop HDFS cmd常用命令练手 环境: hadoop2.6.4 win7 下的eclipse环境调试已经配置好,参考前 ...

  2. 关于properties文件的读取(Java/spring/springmvc/springboot)

    一.Java读取properties文件 1.基于ClassLoder读取配置文件 注意:该方式只能读取类路径下的配置文件,有局限但是如果配置文件在类路径下比较方便. Properties prope ...

  3. Java读取修改Properties文件

    properties文件是我们经常需要操作一种文件,它使用一种键值对的形式来保存属性集. 无论在学习上还是工作上经常需要读取,修改,删除properties文件里面的属性. 本文通过操作一个prope ...

  4. JAVA操作properties文件

    va中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties ...

  5. JAVA使用和操作properties文件

    java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properti ...

  6. Java代码操作properties文件(读取,新增/修改,删除)

    项目中需要用到操作properties文件中的数据,记录一下 package com.bonc.savepic.save; import java.io.FileNotFoundException; ...

  7. Java学习笔记(二)——Java操作properties文件

    [前面的话] 前段时间在学习和玩java web相关的东西,对于这些技术,一边学习,一边做东西,一边总结,希望可以一边成长和有所收获.有时总是思考太多反而成为了前进的阻力,所以对于生活还是简单一些,不 ...

  8. java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)

     java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...

  9. 关于Properties类常用的操作

    import java.io.*;import java.util.Enumeration;import java.util.Properties;/** * 关于Properties类常用的操作 * ...

随机推荐

  1. ios资源

    ios 资源 分类: ios开发2012-05-30 16:39 573人阅读 评论(0) 收藏 举报 ios文档calendar2010reference图像处理 学习过程当中查找到的资料,做一个记 ...

  2. MATLAB 图像操作基础

    I = imread('pout.tif'); imshow(I): figure imhist(I) I2 = histeq(I); figure imshow(I2) imwrite (I2, ' ...

  3. GoldenGate 12.2 支持不可见列invisible column的复制

    Oracle Goldengate 12.2现在可以复制不可见列,在以前的版本中是没有此项功能的.示例:在源和目标都创建一个不可见和虚拟列commission SQL>  create tabl ...

  4. Oracle数据库高效sql语句的整理

    业务需求说明:由于之前公司后台APP端有一个document表,该表中包含了所有的信息,新的需求就是通过该表创建出一个新的用户表(usertable)和一个档案表(document,该表只保留原doc ...

  5. 大公司的Java面试题集

    找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...

  6. [Java Basics] Collection

    除了Java collection class/interface外,方便的有Google guava的utility class: Lists/Sets/Maps/Queues, 用它们可以方便地创 ...

  7. Modbus工业协议在Android中的应用

    现在工业信息画发展,很多工厂都需要做信息化展示,通常都是利用Android一体机来进行展示和交互. Modbus协议是全球第一个用于工业现场的总线协议,与外设交互可以采用串口通信,tcp等方式:通常在 ...

  8. SSD固态硬盘使用注意事项

    SSD固态硬盘的结构和运行方式不同于传统硬盘,在购买以后强烈建议进行一些设置以达到最优的运行效能,延长SSD的使用寿命.以下第一部分是一些可以在网上找到的关于SSD硬盘相关的注意事项,已经介绍很多,这 ...

  9. (基础篇)php中理解print EOT分界符和echo EOT的用法区别

    html与php编写中echo可以同时输出多个字符串,并不需要圆括号. print只可以同时输出一个字符串,需要圆括号. print的用法和C语言很像,所以会对输出内容里的%做特殊解释. echo无返 ...

  10. 使用JavaScript设置、获取父子页面中的值

    一:获取父页面中的值 有二种方法windows.open()和windows.showModalDialog() 1.windos.open(URL,name,reatures,replace) 再父 ...