Java读写Properties属性文件

Java中的Properties文件是一种配置文件,主要用于配置信息,其中文件类型为*.properties,格式是文本文件,其中内容是以键值对的形式存在。它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必要使用数据库文件来保存,而使用一般的文本文件来保存,如果是通过File直接保存的话,可能在存储和读取上都不是很方便,但如果保存为Properties文件就不一样了,属性文件都有键值对应的,在JAVA的包中,有提供专门的操作属性文件的类。这个类就是 java.uitl.Properties类,由于Properties类是一个集合类,所以,Properties会将属性以集合的方式读写。

Java读写Properties属性文件

下面小C就用实例告诉大家Properties如何使用

新建pro.properties的配置文件,内容如下:

  1. name=mxiaoc
  2. url=www.mxiaoc.com

Java实现方法:

  1. public class pro {
  2.     /*
  3.      * 读取配置文件中的url
  4.      */
  5.     public static String getProperties(String key) throws Exception {
  6.         String value = null;
  7.         try {
  8.             Properties prop = new Properties();//创建属性集合对象
  9.             //这个path是获取配置文件的编译路径,大家根据自己的情况来获取路径
  10.             String path = Thread.currentThread().getContextClassLoader().getResource("").getPath() + "pro.properties";
  11.             InputStream in = new BufferedInputStream (new FileInputStream(path));//属性文件流 
  12.             prop.load(in);//将属性文件流装载到Properties对象中
  13.             value = (String) prop.get(key);//根据key获取value值
  14.             in.close();//关闭文件流
  15.         } catch (Exception e) {
  16.             e.printStackTrace();
  17.         }
  18.         return value;
  19.     }
  20.     /*
  21.      * 设置配置文件中的值
  22.      */
  23.     public static void setProperties(String key, String value) throws Exception {
  24.         try {
  25.             Properties prop = new Properties();//创建属性集合对象
  26.             //这个path是获取配置文件的编译路径,大家根据自己的情况来获取路径
  27.             String path = Thread.currentThread().getContextClassLoader().getResource("").getPath() + "pro.properties";
  28.             //FileOutputStream文件输出流
  29.             FileOutputStream fos = new FileOutputStream(path, false);//true表示追加打开
  30.             prop.setProperty(key, value);//设置key和value
  31.             prop.store(fos, "");//将Properties集合保存到流中
  32.             fos.close();//关闭流
  33.         } catch (Exception e) {
  34.             e.printStackTrace();
  35.         }
  36.     }
  37.     /*
  38.      * 测试
  39.      */
  40.     public static void main(String[] args) throws Exception {
  41.         //String url = getProperties("url");
  42.         //System.out.println("获取URL:"+url);
  43.         setProperties("url""www.mxiaoc.com");
  44.     }
  45. }

返回结果:

获取URL:www.mxiaoc.com

 

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

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

    A+
发布日期:2016年03月31日  所属分类:Java
标签:

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

目前评论:14   其中:访客  9   博主  5

  1. avatar 微历史 4

    能看懂,但不会写了

  2. avatar 奋斗之路 2

    百度联盟下来没?我被回绝了!内容量还不足

    • avatar 小C

      @奋斗之路 我也是 !!!百度一直不通过!!等过段时间在申请!!

  3. avatar 姜辰 4

    JS真的是一个很高深的学问。

  4. avatar 土鸡价格 0

    Java读写Properties属性文件,一窍不通,看着都头痛得很

    • avatar 小C

      @土鸡价格 刚开始我也跟你一样!!看多了就好了!慢慢的适应了!

  5. avatar 大城小我 5

    现在对于java的知识已经还给老师了 :grin:

  6. avatar 给你吧网盘 0

    真羡慕你们会java,我不会代码感觉好难。

  7. avatar 李东辉博客 2

    Java还是算了,看不懂啊

  8. avatar 米粒博客 5

    天天学了 能记住么 我是记不住呢

评论加载中...