属性文件读写java.util.Properties

导读:
  
  
  属性文件有时候我们随便放到classes/ , 有时候需要放到指定的目录中去. 后者更零活,所以我们使用下面的代码来读取配置文件:
  props = new Properties();
  FileInputStream fis = new FileInputStream(
  "com/config/config.properties");
  props.load(fis);
  fis.close();
  因为这样可以指定目录.
  而下面的代码就比较差些,必须把属性文件放到classes/下.
  props = new Properties();
  InputStream jndiInput = ResourceUtil.class.getClassLoader()
  .getResourceAsStream("tocomTDSGW.properties");
  props.load(jndiInput);
  jndiInput.close();
  java.util.Properties类用来在一个文件存储键---值对,其中键和值是用等号分隔的。
  例如 driver-class=com.mysql.jdbc.Driver
  user=root
  password=root
  装载到 Properties对象中后,就可以找到3个键( driver-class,user,password)和3个值( driver-class 的 com.mysql.jdbc.Driver, user的 root ,password的root)了。
   如何装载属性文件并列出它当前的一组键和值。只需传递这个文件的 InputStream load() 方法,就会将每一个键-值对添加到 Properties 实例中。然后用 list() 列出所有属性或者用 getProperty() 获取单独的属性。
  注意 list()方法的输出中键-值对的顺序与它们在输入文件中的顺序不一样。 Properties类在一个散列表(hashtable,事实上是一个 Hashtable子类)中储存一组键-值对,所以不能保证顺序。
  如 import java.util.*;
  import java.io.*;
  public classs PropSample{
  public static void main(String args[]) throws Exception {
  Properties prop=new Properties();
  FileInputStream fis=new FileInputStream(config.properties);
  prop.load(fis);
  prop.list(System.out);
  System.out.println("Driver-class是:"+prop.getProperty("driver-class"));
  System.out.println("user是:"+prop.getProperty("user"));
  System.out.println("password是:"+prop.getProperty("password"));
  }
  }
   API说明
   java.util
   类 Properties
   java.lang.Object
   java.util.Dictionary
   java.util.Hashtable
   java.util.Properties
   所有已实现的接口:
   Serializable, Cloneable, Map
   直接已知子类:
   Provider
   --------------------------------------------------------------------------------
   public class Propertiesextends Hashtable Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
   一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。
   因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但强烈反对使用这两个方法,因为它们允许调用方插入其键或值不是 Strings 的项。相反,应该使用 setProperty 方法。如果在“有危险”的 Properties 对象(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用将失败。
   load 和 store 方法按下面所指定的、简单的面向行的格式加载和存储属性。此格式使用 ISO 8859-1 字符编码。可以使用 Unicode 转义符来编写此编码中无法直接表示的字符;转义序列中只允许单个 'u' 字符。可使用 native2ascii 工具对属性文件和其他字符编码进行相互转换。
   loadFromXML(InputStream) 和 storeToXML(OutputStream, String, String) 方法按简单的 XML 格式加载和存储属性。默认使用 UTF-8 字符编码,但如果需要,可以指定某种特定的编码。XML 属性文档具有以下 DOCTYPE 声明:
  
   注意,导入或导出属性时不 访问系统 URI (http://java.sun.com/dtd/properties.dtd);该系统 URI 仅作为一个惟一标识 DTD 的字符串:
  
  
  
  
  
  
  

本文转自
http://blog.163.com/flm_llx/blog/static/271207122008218914706/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值