`
黑暗浪子
  • 浏览: 507854 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

几种读取属性文件的JAVA实现方式(2005年)

阅读更多
1.使用java.util.Properties类的load()方法
  
  示例:
InputStream in = lnew BufferedInputStream(new FileInputStream(name));
  Properties p = new Properties();
  p.load(in);
  
  2.使用java.util.ResourceBundle类的getBundle()方法  
  示例:
ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());
  
  3.使用java.util.PropertyResourceBundle类的构造函数  
  示例:
InputStream in = new BufferedInputStream(new FileInputStream(name));
  ResourceBundle rb = new PropertyResourceBundle(in);
  
  4.使用class变量的getResourceAsStream()方法  
  示例:
InputStream in = JProperties.class.getResourceAsStream(name);
  Properties p = new Properties();
  p.load(in);
  
  5.使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法  
  示例:
InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
  Properties p = new Properties();
  p.load(in);
  
  6.使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法  
  示例:
InputStream in = ClassLoader.getSystemResourceAsStream(name);
  Properties p = new Properties();
  p.load(in);
  
  补充
  
  Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
  
  示例:
InputStream in = context.getResourceAsStream(path);
  Properties p = new Properties();
  p.load(in); 



        其中name为properties文件名字.但我在网上发现有人说要写properties文件的绝对路径,否则测试   不 能通过.我没验证过,有兴趣的朋友可以试试.
      就我个人而言我是比较偏向用第3方法.我在网上找到一篇介绍的更为详细的文章,全文如下:
  在设计时,我们往往需要访问一些适合本地修改的配置信息,如果作为静态变量,那么每次修改都需要重新编译一个class,.config保存此类信息并不适合,这时我们需要ResourceBundle。
   通过ResourceBundle,我们需要访问位于/WEB-INF/classes目录下的一个后缀名为properties的文本类型文件,从里面读取我们需要的值。

   
Locale locale = Locale.getDefault();
    ResourceBundle localResource = ResourceBundle.getBundle("ConnResource", locale);
 
    String value = localResource.getString("test");
    System.out.println("ResourceBundle: " + value);

    这里对应了/WEB-INF/class/ConnResource.properties文件内容为:

    test=hello world
    打印出来的结果就是hello world  
    请注意,这里我们可以利用Locale和ResourceBundle的这个组合创建国际化的java程序。我们可以把locale实例化为
new Locale("zh","CN");

    通过
ResourceBundle.getBundle("MessagesBundle",  locale);


    系统将自动寻找MessagesBundle_zh_CN,即定义为中国大陆地区简体中文。如果没有该文件,则会依次寻找MessagesBundle_zh,MessagesBundle,直到找到为止。

看见没有?用这种方法还可以进行国际化的处理.应该功能上比较强大点.

9
1
分享到:
评论
1 楼 严东军 2010-02-02  
学习了,谢谢哈。

相关推荐

    毕业设计(java程序2005new).rar_java 毕业设计_java毕业设计_java程序_毕业设计_程序设计

    【标题】"毕业设计(java程序2005new).rar"是一个关于Java编程语言的毕业设计项目,其中包含了2005年的一个新版本的Java程序。这个项目可能是针对计算机科学或软件工程专业学生的,旨在展示他们在学习Java编程过程...

    2005年4月全国计算机等级考试二级JAVA笔试试题及答案.doc

    【标题】和【描述】提到的是2005年4月全国计算机等级考试二级JAVA笔试试题及答案,而【标签】包含"java JavaScript",但文档内容并未涉及JavaScript,因此主要讨论Java相关知识。 Java是一种广泛使用的面向对象的...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例245 读取XML文件属性 310 第3篇 窗体与控件应用 第11章 窗体设计 314 11.1 设置窗体位置 315 实例246 控制窗体加载时的位置 315 实例247 设置窗体在屏幕中的位置 315 实例248 从上次关闭位置启动窗体 316 实例...

    servlet jsp

    - **Servlet 2.5**:2005年发布,支持Annotation配置,简化了Servlet的部署描述符编写。 - **Servlet 3.0**:2009年发布,引入了非阻塞I/O模型。 - **Servlet 3.1**:2013年发布,支持Java 7新特性。 - **Servlet ...

    几百个书源.zip

    在本例中,“2k5_2203.json”可能表示一个包含2005年或与2005相关的2203个书源的数据文件。"2k5"可能是年份的缩写,"2203"可能是书源的数量或者某种编号系统。 在IT领域,处理JSON文件时通常会用到以下知识点: 1....

    Java纸牌扑克游戏

    这款游戏是2005年的作品,对于初学者来说,它提供了一个良好的学习平台,帮助理解Java GUI编程以及游戏逻辑的设计。 在Java中,Swing是一个用于构建桌面应用的图形用户界面(GUI)的库。它是Java Foundation Classes ...

    JMS金山快译2005

    JMS,全称为Java Message Service,是一种Java平台上的标准接口,用于在分布式环境中实现异步的消息传递。在这里,"JMS金山快译"可能是指软件采用了JMS技术来处理后台服务,如翻译任务的调度和处理,使得软件能够...

    基于Hadoop数据分析系统设计(优秀毕业设计).docx

    它由Doug Cutting和Mike Cafarella创立,于2005年捐赠给Apache基金会。Hadoop的设计目标是处理大规模数据集,具有高可扩展性、可靠性和高效性等特点。 Hadoop架构 Hadoop的架构主要由四个部分组成:HDFS(Hadoop ...

    Hibernate学习指南pdf

    到了2005年3月,Hibernate 3的发布进一步巩固了其在ORM领域的领导地位。 #### 对象-关系映射基础 对象-关系映射是Hibernate的核心能力之一,它将面向对象的数据模型与关系型数据库中的表结构进行无缝对接。通过...

    2005~2019历年软件设计师真题详解(word+pdf).zip

    这个压缩包文件“2005~2019历年软件设计师真题详解(word+pdf).zip”包含了从2005年至2019年间的软件设计师资格考试的历年真题及其详细解析,旨在帮助备考者充分理解和掌握考试的重点与难点。通过深入学习这些资料...

    GB18030字符集输出

    GB18030编码的文件需要使用相应的读取和写入方式,以避免乱码问题。 6. **编程实现**:在编程语言中,如Python、Java等,有专门的库函数或API用于处理GB18030编码,如Python的`codecs`模块,Java的`Charset`类等。 ...

    UiPath,RPA,是一种领先的机器人流程自动化工具.pdf

    用户可以通过拖拽活动、设置属性、编写表达式等方式来创建复杂的自动化流程,实现业务流程的高度定制。 #### 3. 强大的集成能力 UiPath 支持与多种系统和应用的集成,如 ERP、CRM、数据库等。用户可以通过 UiPath ...

    jbuddy:它是一个测试助手工具,可以从excel中导入数据并断言数据。 它创建于 9 年前

    这个项目始于约 2005 年,至今已有 9 年的历史,尽管年代久远,但在当时,它可能是为了解决自动化测试中数据管理和断言的一系列问题。 在测试领域,数据驱动测试是一种常见的方法,它允许测试人员将测试用例的数据...

Global site tag (gtag.js) - Google Analytics