首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Java用Properties种读写配置文件实例

2013-09-11 
Java用Properties类读写配置文件实例我们都知道在编程时,有些参数是不固定的,比如服务器地址,数据库名字等

Java用Properties类读写配置文件实例
我们都知道在编程时,有些参数是不固定的,比如服务器地址,数据库名字等,像这种参数通常要做个配置文件,这样就可以很简单的修改设置了。配置文件可以用xml,ini,Properties等。Java中没有直接提供专门来读写INI文件的类,Java支持的是.properties文件的读写。JDK内置的 Java.util.Properties 类为我们操作 .properties文件提供了便利。

1、JDK中的Properties类 Properties 类存在于包Java.util中,该类继承自Hashtable。它提供了几个主要的方法:
(1)、load (InputStream inStream) ,从输入流中读取属性列表(键和元素对)。通过对指定的文件进行装载来获取该文件中的所有键-值对。以供getProperty(String key)来搜索。
(2)、getProperty(String key),用指定的键在此属性列表中搜索属性。也就是通过参数key,得到key所对应的value。
(3)、setProperty(String key,String value),调用Hashtable的方法put 。他通过调用基类的put方法来设置 键-值对。
(4)、store(OutputStream out,String comments),以适合使用load方法加载到 Properties 表中的格式,将此 Properties表中的属性列表(键和元素对)写入输出流。与load方法相反,该方法将键-值对写入到指定的文件中去。
(5)、clear() ,清除所有装载的键-值对。该方法在基类中提供。
2、.properties文件的形式(也可以更改为.ini):

#以下为服务器、数据库信息
server = localhost
database = mydb
dbuser = root
dbpw = 123456
#其它信息等

   注:#开始的一行为注释信息

以下是一个Properties用法实例:

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream.GetField;
import java.util.Properties;
import java.util.TreeMap;

public class OFile {

//指定文件路径及文件名
private static  String fileName = "c:/aa.ini";
private static  Properties props=new Properties();
private static  InputStream inputFile;
private static  FileOutputStream outputFile;  

/**
  * 根据Key 读取Value
  * @param key
  * @return
  */
public static String readKey(String key) {
  String value="";
  try {
   inputFile= new BufferedInputStream(new FileInputStream(fileName));
   props.load(inputFile);
   inputFile.close();
   value = props.getProperty(key);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return value;
}

public static void setKey(String key, String value){
  props.setProperty(key, value);
}

/**
  * 修改或添加键值对 如果key存在,修改否则添加。
  * @param key
  * @param value
  */
public static void saveKey(String comment) {
  try {
   File file = new File(fileName);
   if (!file.exists())
    file.createNewFile();
   outputFile = new FileOutputStream(fileName);
   props.store(outputFile, comment);
  } catch (IOException e) {
   e.printStackTrace();
  }finally{
   try {
    outputFile.close();
   } catch (IOException e) {
   }
  }
}

public static void main(String[] args){
  //读取信息
  String server=readKey("server");
  String mydb=readKey("database");
  System.out.println(server);
  System.out.println(mydb);

  //写入信息
  setKey("dbuser", "freezq");
  setKey("test", "aaabbbcc");
  saveKey("test sava");
}
}



用Properties读写配置文件的确很方便简单,但它跟HashMap是一样的无序,写入的顺序是乱的
本文来自: 免费资源收集网(www.freezq.cn) 详细出处参考:http://www.freezq.cn/article/450.htm
我的异常网推荐解决方案:免费资源库,http://www.myexception.cn/other/1391134.html

热点排行