属性文件的几种读取方法

1、   说明

在我们做项目过程中,总要涉及到针对属性文件的读取,把一些字符串常量定义在属性文件中,方便了我们平时针对系统的维护。现在把几种常用的属性文件的读取方式总结一下。

2、   读取方式

1) 通过 ResourceBundle

我们定义了 dnrmMessages.properties 这个属性文件:

PERSPECTIVE_ID = com.jctx.dnrm.TrmsPerspective

定义一个工具类文件 Message.java

package com.jctx.dnrm;

 

import java.util.MissingResourceException;

import java.util.ResourceBundle;

 

public class Message {

// 定义属性文件的路径

       private static final String BUNDLE_NAME = "com.jctx.dnrm.dnrmMessages";

       private static final ResourceBundle Resource_Bundle = ResourceBundle.getBundle(BUNDLE_NAME);

      

       private Message(){

       }

       public static String getString(String key){

              try{

                     return Resource_Bundle.getString(key);

              }

              catch (MissingResourceException e){

                     return "!" + key + "!";

              }    

       }

}

如果要取属性文件中的值,则这样的读取:

Message.getString("PERSPECTIVE_ID");

2) 通过 NLS

一般用于 eclipse 的插件开发, NLS 为包 org.eclipse.osgi.util 下的一个文件。我们定义了一个消息类文件,继承于 NLS 类,如下所示:

import org.eclipse.osgi.util.NLS;

 

public class LogicMessages extends NLS

{

public static String AddCommand_Label;

static {

    NLS.initializeMessages("org.eclipse.gef.examples.logicdesigner.messages",LogicMessages.class); //$NON-NLS-1$

}

}

属性文件 messages.properties 为:

AddCommand_Label= Add command

当我们需要读取属性文件值的时候,利用下面的方法便可获得对应的属性值:

LogicMessages.AddCommand_Label

3) 通过 Platform.getBundle() 方法

当我们在做插件开发时,把有部分属性信息写道 plugin.properties 文件中。这时,我们需要读取 plugin.properties 里的信息。如果对应插件 ID com.jctx.trms, 读取 plugin.properties (中文系统对应的文件名位: plugin_zh_CN.properties )的属性文件方式如下 :

package com.jctx.trms;

 

import java.util.MissingResourceException;

import org.eclipse.core.runtime.Platform;

import org.osgi.framework.Bundle;

 

public interface LogicMessages {

    static class Helper {

        public static String getString(String key) {

               Bundle bundle = Platform.getBundle("com.jctx.trms");

            try {

                return Platform.getResourceString(bundle,key);

            }

             catch (MissingResourceException e) {

                return key;

            }

        }

    }

}

在程序中可以通过以下方式获取属性 key 对应的值

LogicMessages.Helper.getString("%GraphicalEditor_FILE_DELETED_TITLE");

4) 将属性值定义到一个接口文件中去

package org.eclipse.ui.examples.rcp.browser;

 

public interface IBrowserConstants {

    public static final String BROWSER_PERSPECTIVE_ID = PLUGIN_ID + ".browserPerspective"; //$NON-NLS-1$

    public static final String BROWSER_VIEW_ID = PLUGIN_ID + ".browserView";

    public static final String HISTORY_VIEW_ID = PLUGIN_ID + ".historyView";

    public static final String COMMAND_PREFIX = PLUGIN_ID + ".commands."; //$NON-NLS-1$

    public static final String PREF_HOME_PAGE = "homePage"; //$NON-NLS-1$

    public static final String MEMENTO_URL = "url"; //$NON-NLS-1$

}

5) 通过 Properties 类和 InputStream

Properties pr = new Properties();

InputStream input = SimpleAgent.cla ss.getResourceAsStream("mib.Properties");

pr.load(input)

当读取属性文件时,用 pr.getProperty("key").trim() 即可获得所需要的 value 了。

 

以上总结了几种属性的读取方法,您如果还有其他好的方式,我们可以交流讨论一下

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值