《java操作属性文件-.pdf》由会员分享,可在线阅读,更多相关《java操作属性文件-.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作属性文件*操作属性文件,可以为我们的程序带来更方便的移植性,下面是一个示例,可以读、写、更改属性读采用了两种方式,一种是采用Properties 类,另外一种是采用资源绑定类ResourceBundle类,下面是源程序,里面有详细的注释:*/import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.util.Properties;import java.util.ResourceBundle;/*对属性文件(xx.properties)的操作*注
2、:属性文件一定要放在当前工程的根目录下,也就是放在与src 目录在同一个目录下(我的 JDevelop*是这样的)*/public class OperatePropertiesFile public OperatePropertiesFile()/*采用 Properties 类取得属性文件对应值*parampropertiesFileNameproperties文件名,如a.properties*parampropertyName属性名*return根据属性名得到的属性值,如没有返回*/public static String getValueByPropertyName(String p
3、ropertiesFileName,String propertyName)String s=;Properties p=new Properties();/加载属性文件读取类FileInputStream in;try /propertiesFileName如 test.properties in=new FileInputStream(propertiesFileName);/以流的形式读入属性文件p.load(in);/属性文件将该流加入的可被读取的属性中in.close();/读完了关闭s=p.getProperty(propertyName);/取得对应的属性值 catch(Exce
4、ption e)e.printStackTrace();return s;/*采用 ResourceBundel 类取得属性文件对应值,这个只能够读取,不可以更改及写新的属性*parampropertiesFileNameWithoutPostfixproperties文件名,不带后缀*parampropertyName属性名*return根据属性名得到的属性值,如没有返回*/public static String getValueByPropertyName_(String propertiesFileNameWithoutPostfix,String propertyName)Strin
5、g s=;/如属性文件是test.properties,那此时propertiesFileNameWithoutPostfix的值就是test ResourceBundle bundel=ResourceBundle.getBundle(propertiesFileNameWithoutPostfix);s=bundel.getString(propertyName);return s;/*更 改 属 性 文 件 的 值,如 果 对 应 的 属 性 不 存 在,则 自 动 增 加 该 属 性*parampropertiesFileNameproperties文件名,如a.properties*
6、parampropertyName属性名*parampropertyValue将属性名更改成该属性值*return 是否操作成功*/publicstaticbooleanchangeValueByPropertyName(String propertiesFileName,String propertyName,String propertyValue)boolean writeOK=true;Properties p=new Properties();InputStream in;try in=new FileInputStream(propertiesFileName);p.load(in
7、);/in.close();p.setProperty(propertyName,propertyValue);/设置属性值,如不属性不存在新建/p.setProperty(testProperty,testPropertyValue);FileOutputStream out=new FileOutputStream(propertiesFileName);/输出流p.store(out,);/设置属性头,如不想设置,请把后面一个用替换掉out.flush();/清空缓存,写入磁盘out.close();/关闭输出流 catch(Exception e)e.printStackTrace()
8、;return writeOK;本文介绍几种读取属性文件的JAVA实现方式。*采用 ResourceBundel 类取得属性文件对应值,这个只能够读取,不可以更改及写新的属性*parampropertiesFileNameWithoutPostfixproperties文件名,不带后缀*parampropertyName属性名*return根据属性名得到的属性值,如没有返回*/public static String getValueByPropertyName_(String propertiesFileNameWithoutPostfix,String propertyName)Strin
9、g s=;/如属性文件是test.properties,那此时propertiesFileNameWithoutPostfix的值就是test ResourceBundle bundel=ResourceBundle.getBundle(propertiesFileNameWithoutPostfix);s=bundel.getString(propertyName);return s;/*更 改 属 性 文 件 的 值,如 果 对 应 的 属 性 不 存 在,则 自 动 增 加 该 属 性*parampropertiesFileNameproperties文件名,如a.properties*
10、parampropertyName属性名*parampropertyValue将属性名更改成该属性值*return 是否操作成功*/publicstaticbooleanchangeValueByPropertyName(String propertiesFileName,String propertyName,String propertyValue)boolean writeOK=true;Properties p=new Properties();InputStream in;try in=new FileInputStream(propertiesFileName);p.load(in
11、);/in.close();p.setProperty(propertyName,propertyValue);/设置属性值,如不属性不存在新建/p.setProperty(testProperty,testPropertyValue);FileOutputStream out=new FileOutputStream(propertiesFileName);/输出流p.store(out,);/设置属性头,如不想设置,请把后面一个用替换掉out.flush();/清空缓存,写入磁盘out.close();/关闭输出流 catch(Exception e)e.printStackTrace()
12、;return writeOK;本文介绍几种读取属性文件的JAVA实现方式。*采用 ResourceBundel 类取得属性文件对应值,这个只能够读取,不可以更改及写新的属性*parampropertiesFileNameWithoutPostfixproperties文件名,不带后缀*parampropertyName属性名*return根据属性名得到的属性值,如没有返回*/public static String getValueByPropertyName_(String propertiesFileNameWithoutPostfix,String propertyName)Strin
13、g s=;/如属性文件是test.properties,那此时propertiesFileNameWithoutPostfix的值就是test ResourceBundle bundel=ResourceBundle.getBundle(propertiesFileNameWithoutPostfix);s=bundel.getString(propertyName);return s;/*更 改 属 性 文 件 的 值,如 果 对 应 的 属 性 不 存 在,则 自 动 增 加 该 属 性*parampropertiesFileNameproperties文件名,如a.properties*
14、parampropertyName属性名*parampropertyValue将属性名更改成该属性值*return 是否操作成功*/publicstaticbooleanchangeValueByPropertyName(String propertiesFileName,String propertyName,String propertyValue)boolean writeOK=true;Properties p=new Properties();InputStream in;try in=new FileInputStream(propertiesFileName);p.load(in
15、);/in.close();p.setProperty(propertyName,propertyValue);/设置属性值,如不属性不存在新建/p.setProperty(testProperty,testPropertyValue);FileOutputStream out=new FileOutputStream(propertiesFileName);/输出流p.store(out,);/设置属性头,如不想设置,请把后面一个用替换掉out.flush();/清空缓存,写入磁盘out.close();/关闭输出流 catch(Exception e)e.printStackTrace();return writeOK;本文介绍几种读取属性文件的JAVA实现方式。请注意,这里我们可以利用Locale 和 ResourceBundle 的这个组合创建国际化的 java 程序。我们可以把locale实例化为new Locale(zh,CN);ResourceBundle.getBundle(MessagesBundle,locale);系统将自动寻找 MessagesBundle_zh_CN,即定义为中国大陆地区简体中文。如果没有该文件,则会依次寻找MessagesBundle_zh,MessagesBundle,直到找到为止。
限制150内