使用java读写properties文件属性

自己定义一个属性文件:例如prop.properties

  baseFilePath=D\:/kuanter/resource

  tesx=abcd

  我们要做的第一步就是要将文件读取到Properties类对象中,由于load有一个参数是InputStream,所以我们可以用 InputStream的子类FileInputStream将属性文件读取到Properties对象中,知道prop.properties的路径,我们就用FileInputStream(String name)构造函数:

  Properties prop = new Properties();//属性集合对象

  FileInputStream fis = new FileInputStream("prop.properties");//属性文件流

  prop.load(fis);//将属性文件流装载到Properties对象中

  1.//获取属性值,baseFilePath已在文件中定义

  2.System.out.println("获取属性值:baseFilePath=" + prop.getProperty("baseFilePath"));

  3.//获取属性值,country未在文件中定义,将在此程序中返回一个默认值,但并不修改属性文件

  4.System.out.println("获取属性值:country=" + prop.getProperty("country", "中国"));

  在保存属性集合到文件之前,我们还有一件事情就是如何修改和添加新的属性到属性集合,这里使用了一个方法就是setProperty(String key, String value),这个方法就是当属性集合中存在指定的key时,就修改这个key的值,如果不存在,就新建一个key,同样是通过键值关系保存的,但值得注意的是,Properties类继承自Hashtable,所以也可以用Hashtable的put和putAll方法保存,但强烈反对使用这两个方法,因为它们允许调用方插入其键或值不是 Strings 的项。相反,应该使用 setProperty 方法。如果在“有危险”的 Properties 对象(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用将失败。那好,下面我们就来看看修改、添加和保存属性的程序:


//修改baseFilePath的属性值

prop.setProperty("baseFilePath", "Boxcode");

//添加一个新的属性studio

prop.setProperty("studio", "Boxcode Studio");

//文件输出流

FileOutputStream fos = new FileOutputStream("prop.properties");

//将Properties集合保存到流中

prop.store(fos, "Copyright (c) Boxcode Studio");

fos.close();//关闭流

  在我们知道如何读写一个属性文件之后,我们仍然还有很多需要注意的问题,因为load和store方法都是按照ISO-8859-1的编码方式读写属性流文件的,而ILatin1 的字符和某些特殊字符,而对于非Latin1 的字符和某些特殊字符,则要使用与字符和字符串字面值所用的类似转义序列,以值和元素的形式来表示它们。所以当我们在处理中文时,不可以在直接修改属性文件时,将中文的值赋予给属性,而是要在JAVA程序中通过setProperty方法给属性赋予中文的值,因为这样store会将中文转换成 unicode码,在读取时系统会将读取到的unicode码按系统的编码打印出来,对于中文系统,通常是GBK码,这样中文才能够正常显示。

 具体在项目中的属性文件读写


package TestPropertis;

//import java.io.FileInputStream;

//import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

//import java.net.URL;

import java.util.Properties;

/**

* TODO

* @author admin

* @date 2012-11-22 下午05:17:28

*/

public class ReadWirtePropertis {

public static void main(String[] args) {

Properties pro = new Properties();//属性集合对象

//      URL url = Thread.currentThread().getContextClassLoader().getResource("prop.properties");//获取项目中文件的路径

InputStream path =Thread.currentThread().getContextClassLoader().getResourceAsStream("prop.properties");//获取路径并转换成流

//      try {

//          FileInputStream fis = new FileInputStream("属性文件创建在电脑上");

try {

//              pro.load(fis);//将属性文件流装载到Properties对象中

pro.load(path);

//              fis.close();

System.out.println(pro.getProperty("baseFilePath"));

pro.setProperty("shuzi", "1111");//往属性文件插值

pro.setProperty("shuzi", "222");//更改属性值

System.out.println(pro.getProperty("shuzi"));

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//      } catch (FileNotFoundException e) {

//          // TODO Auto-generated catch block

//          e.printStackTrace();

//      }

}

}

   

最新内容请见作者的GitHub页:http://qaseven.github.io/

   

时间: 2024-09-20 04:24:41

使用java读写properties文件属性的相关文章

Java 读写Properties配置文件详解_java

Java 读写Properties配置文件 1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集.不过Properties有特殊的地方,就是它的键和值都是字符串类型. 2.Properties中的主要方法 (1)load(InputStream inStream)   这个方法可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象.如下面的代码

Java 读写Properties配置文件

1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集.不过Properties有特殊的地方,就是它的键和值都是字符串类型. 2.Properties中的主要方法 (1)load(InputStream inStream)   这个方法可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象.如下面的代码: Properties pro = new

java获取properties属性文件示例_java

一个属性列表可包含另一个属性列表作为它的"默认值":如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表. 因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法.但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项.相反,应该使用 setProperty 方法.如果在"不安全"的 Properties 对象(即包含非 String 的键或值)上调用 stor

java读取properties文件的方法

  本文实例讲述了java读取properties文件的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 package com.t

Java读写Cookie记录的方法

  本文实例讲述了Java读写Cookie记录的方法.分享给大家供大家参考.具体如下: 写Cookie ,cookie的value可以使String, list , map,int : ? 1 2 3 4 5 6 7 Cookie usernameCookie = new Cookie("username_" + schoolId, encodedUsername); usernameCookie.setMaxAge(60 * 60 * 24 * 365); response.addC

java读取properties文件

关键字: java读取properties配置文件 今天要将以前一个项目的数据连接改成从properties文件中配置.找了好久,网上也不少,可就是读取文件时总是找不到文件在哪(我放在classes目录下了).最后终于成功,记下,以做纪念. Java代码 package com.web.connection; import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.s

Java读取properties配置文件时,出现中文乱码的解决方法_java

如下所示: public static String getConfig(String key) { Properties pros = new Properties(); String value = ""; try { pros.load(new InputStreamReader(Object.class.getResourceAsStream("/properties.properties"), "UTF-8")); value = pr

Java中Properties的使用详解

这篇文章主要介绍了Java中Properties的使用详解的相关资料,需要的朋友可以参考下. Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支 持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置.今天,我们就开始Properties的使用. Java中Properties的使用 Properties的文档说明: The Properties

JAVA操作properties文件

java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties 文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便.一.properties文件 test.properties------------------------------------------------------#########