黑马程序员_java的IO流三_15

来源:互联网 发布:护肤品市场数据 编辑:程序博客网 时间:2024/06/07 04:44

 

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

一、认识properties文件

1、properties文件是一个文本文件

2、properties文件的语法有两种,一种是注释,一种属性配置。

     释:前面加上#号

     属性配置:以“键=值”的方式书写一个属性的配置信息。

3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。

4、properties的属性配置键值前后的空格在解析时候会被忽略。

5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。

二,Properties类的说明
2.1 Properties类的层次结构
java.lang.Object
  java.util.Dictionary<K,V>
      java.util.Hashtable<Object,Object>
          java.util.Properties
 
从层次机构看,Properties类实现了Map接口,因为HashTable实现了Map接口,因此Properties类本质上是一种简单的Map容器。实际上,Properties类本身表示了对一种Map结构的操作。properties文件本身就表示了一个“键值对”的集合。因此,Properties类属于集合容器的家族,在使用前应该创建一个Properties的容器,实际上就是创建一个默认不带参数的Properties对象。以后通过别的方式给里面添加“键值对”。
 
2.2properties文件与Properties类的关系
通过properties文件可以填充Properties类。
也可以通过xml文件来填充Properties类。
可以通过绝对路径方式加载Properties文件信息,也可以使用相对路径加载。



三,Properties类的具体应用

3.1模拟早期收费软件如何记录软件运行次数进行收费的。由于内存不能有效记录运行次数,需要在硬盘上操作配置文件记录次数


3.2 编写数据库代码是用properties类可以在不用动源代码的情况写更改数据库驱动,用户,名称password等信息

下面我给出两个例子,直观的看一下两者的区别:

例子一:不适用properties文件的情况下,数据库的配置信息直接写到程序中,耦合度高不已修改
String driver = "com.mysql.jdbc.Driver"
String url = "jdbc:mysql://localhost/myDB";
String name = "root"
String password = "123"

Class.forName(driver);
Connection con = DriverManager.getConnection(url,name,password);


例子二:用Properties类加载Properties文件的好处

首先我先将properties文件给出,文件名为myProperties.properties

String driver = com.mysql.jdbc.Driver
String url = jdbc:mysql://localhost/myDB;
String name = root
String password = 123


程序中这样写:
String driver;
String url;
String name;
String password;

FileInputStream fis = new FileInputStream(myProperties.properties);
Properties properties = new Properties();
properties.load(fis);            //从输入流中读取属性文件的内容
fis.close();
//从属性文件中读取相应字段的信息
driver = properties.getProperty(driver);
url = properties.getProperty(url);
name = properties.getProperty(name);
password = properties.getProperty(password);

Class.forName(driver);
Connection con = DriverManager.getConnection(url,name,password);


我们看到数值和代码已经分离,这样很方便我们修改数值!再有一定要注意properties文件中的字段的写法,不要再多添“”否则会出现问题!因为getProperty()方法返回的是一个字符串!也可对这个文件进行加密处理。
 

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima

0 0
原创粉丝点击