`
laodaobazi
  • 浏览: 276512 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

读取Properties文件中的内容填充本地combo

阅读更多

首先定义一个properties文件放到classpath路径下

systemConfig.poperties

##comboBox
user.status=[0:禁用],[1:启用]
user.sex==[0:男],[1:女]

 

读取properties文件的Java代码:

ReadProperties.java

package com.hwasun.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
 * 
 * @author JLee
 * @Since 2011-3-10
 * @function 
 * 读取系统的properties文件
 * 完成本地combo的数据获取
 */
public class ReadProperties {

	public Map<String,String> readFile(String fileName) {// 传入参数fileName是要读取的资源文件的文件名如(file.properties)
		InputStream in = null;
		Properties pros = new Properties();
		File file = new File(fileName);  
		Map<String,String> map = new HashMap<String,String>() ;
		try {
			if (null != fileName) {
// 			下面这种方式前提是资源文件必须类在同一个包下
//				in = ReadProperties.class.getResourceAsStream(fileName);
				in = new FileInputStream(file);  
				// 得到当前类的路径,并把资源文件名作为输入流
				pros.load(in);
				Enumeration en = pros.propertyNames();// 得到资源文件中的所有key值
				while (en.hasMoreElements()) {
					String key = (String) en.nextElement();
					map.put(key, pros.getProperty(key)) ;
// 				输出资源文件中的key与value值
//					System.out.println("key=" + key + " value=" + pros.getProperty(key));
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("读取资源文件出错");
		} finally {
			try {
				if (null != in) {
					in.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
				System.out.println("关闭流失败");
			}
		}
		return map ;
	}

	public static void main(String[] args) {
		//下面这种方式前提是资源文件必须类在同一个包下
		//	new ReadProperties().readFile("systemConfig.properties")  ;
		//下面这种方式前提是资源文件放在classpath下面
		new ReadProperties().readFile(Thread.currentThread().getContextClassLoader().getResource("").getPath()+"systemConfig.properties") ;
	}
	
}

 

 

定义JSP页面

	<script type="text/javascript" src="<%=path%>/util/map.js"></script>
	<script type="text/javascript">
		var systemConfig = new Map();
		<%
			ReadProperties readProperties = new ReadProperties() ;
			java.util.Map<String,String> map = readProperties.readFile(Thread.currentThread().getContextClassLoader().getResource("").getPath()+"systemConfig.properties") ;
			java.util.Iterator it = map.entrySet().iterator();
			while (it.hasNext()){
			java.util.Map.Entry entry = (java.util.Map.Entry) it.next();
		%>
			systemConfig.put("<%=entry.getKey()%>","<%=entry.getValue()%>") ;
		<%
			} 
		%>
		//var val = systemConfig.get("user.status") ;
	</script>

 文件中引入了map.js文件,作用是用于存储properties文件的键值对

map.js

/*
 * 将JS中的Array扩展为Map为了常量的字典设置
 * 
 * 接口: size() 获取MAP元素个数 isEmpty() 判断MAP是否为空 clear() 删除MAP所有元素 put(key, value)
 * 向MAP中增加元素(key, value) remove(key) 删除指定KEY的元素,成功返回True,失败返回False get(key)
 * 获取指定KEY的元素值VALUE,失败返回NULL element(index)
 * 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL containsKey(key)
 * 判断MAP中是否含有指定KEY的元素 containsValue(value) 判断MAP中是否含有指定VALUE的元素 values()
 * 获取MAP中所有VALUE的数组(ARRAY) keys() 获取MAP中所有KEY的数组(ARRAY)
 * 
 * 例子: var map = new Map();
 * 
 * map.put("key", "value"); var val = map.get("key") ……
 * 
 */
function Map() {
	this.elements = new Array();

	// 获取MAP元素个数
	this.size = function() {
		return this.elements.length;
	}

	// 判断MAP是否为空
	this.isEmpty = function() {
		return (this.elements.length < 1);
	}

	// 删除MAP所有元素
	this.clear = function() {
		this.elements = new Array();
	}

	// 向MAP中增加元素(key, value)
	this.put = function(_key, _value) {
		this.elements.push({
					key : _key,
					value : _value
				});
	}
	
	//增加元素并覆盖
	this.putOverride = function(_key,_value){
		this.remove(_key);
		this.put(_key,_value);
	}

	// 删除指定KEY的元素,成功返回True,失败返回False
	this.remove = function(_key) {
		var bln = false;
		try {
			for (i = 0; i < this.elements.length; i++) {
				if (this.elements[i].key == _key) {
					this.elements.splice(i, 1);
					return true;
				}
			}
		} catch (e) {
			bln = false;
		}
		return bln;
	}

	// 获取指定KEY的元素值VALUE,失败返回NULL
	this.get = function(_key) {
		try {
			for (i = 0; i < this.elements.length; i++) {
				if (this.elements[i].key == _key) {
					return this.elements[i].value;
				}
			}
		} catch (e) {
			return null;
		}
	}

	// 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
	this.element = function(_index) {
		if (_index < 0 || _index >= this.elements.length) {
			return null;
		}
		return this.elements[_index];
	}

	// 判断MAP中是否含有指定KEY的元素
	this.containsKey = function(_key) {
		var bln = false;
		try {
			for (i = 0; i < this.elements.length; i++) {
				if (this.elements[i].key == _key) {
					bln = true;
				}
			}
		} catch (e) {
			bln = false;
		}
		return bln;
	}

	// 判断MAP中是否含有指定VALUE的元素
	this.containsValue = function(_value) {
		var bln = false;
		try {
			for (i = 0; i < this.elements.length; i++) {
				if (this.elements[i].value == _value) {
					bln = true;
				}
			}
		} catch (e) {
			bln = false;
		}
		return bln;
	}

	// 获取MAP中所有VALUE的数组(ARRAY)
	this.values = function() {
		var arr = new Array();
		for (i = 0; i < this.elements.length; i++) {
			arr.push(this.elements[i].value);
		}
		return arr;
	}

	// 获取MAP中所有KEY的数组(ARRAY)
	this.keys = function() {
		var arr = new Array();
		for (i = 0; i < this.elements.length; i++) {
			arr.push(this.elements[i].key);
		}
		return arr;
	}
}

/**
   数字数组,可将字串中的数字提出并加入数组,返回最大最小值,排序
*/
function NumberArray(){
	
	this.elements = new Array();
	this.addandReturnMax = function(num){
		this.add(num);
		this.sort();
		return this.max();
	}
	this.add = function(num){
		num = num.replace(/\D/g,'');
		this.elements.push(num);
	}
	this.sort = function(){
		this.elements = this.bubbleSort();
		return this.elements;
	}
	this.max = function(){
		return this.elements.slice(0,1);
	}
	this.min = function(){
		return this.elements.slice(-1,0);
	}
	
	this.bubbleSort = function() {
		var arr = this.elements;
		// 外层循环,共要进行arr.length次求最大值操作
		for (var i = 0; i < arr.length; i++) {
			// 内层循环,找到第i大的元素,并将其和第i个元素交换
			for (var j = i; j < arr.length; j++) {
				if (parseInt(arr[i]) < parseInt(arr[j])) {
					// 交换两个元素的位置
					var temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
		return arr;
	} 
	this.clear = function(){
		this.elements = new Array();
	}
}

 

 

定义自己的本地combo

var combo = new Ext.form.ComboBox({
    typeAhead: true,
    triggerAction: 'all',
    lazyRender:true,
    mode: 'local',
    store: new Ext.data.ArrayStore({
        id: 0,
        fields: [
            'myId',
            'displayText'
        ],
        data: Ext.decode("["+systemConfig.get("user.status")+"]")
    }),
    valueField: 'myId',
    displayField: 'displayText'
});

 

分享到:
评论

相关推荐

    js读取properties文件

    在JavaScript(JS)环境中,读取.properties文件通常用于处理配置数据或者本地化文本。这些文件在Java开发中广泛使用,但JavaScript同样可以借助一些库或技术来读取它们。下面我们将详细探讨如何在JavaScript中实现...

    Python实现读取Properties配置文件的方法

    `getProperties`方法负责打开文件,读取内容,并将键值对存储到字典中。 ```python class Properties: fileName = '' def __init__(self, fileName): self.fileName = fileName def getProperties(self): ...

    读取properties文件内容

    ConfigFile configfile = ConfigFile.getInstance("ipConfig123.properties"); String ip = configfile.getkeyvalue("ip"); 可以取出ipConfig123.properties 文件中IP的内容

    读取properties文件返回map

    本篇将详细讲解如何在Java中读取`properties`文件并将其内容转换为`Map`对象。 1. **properties文件结构** `properties`文件的结构非常简单,每行代表一个键值对,键和值之间用等号`=`或冒号`:`分隔。例如: ``` ...

    java 读取properties文件代码

    读取Properties文件是Java开发中的常见操作,特别是在需要根据配置文件动态改变程序行为的时候。下面我们将详细探讨如何在Java中读取Properties文件。 首先,你需要确保你的项目中包含了一个Properties文件,比如`...

    c#操作properties,读写配置文件

    ### C#操作Properties,读写配置文件 在C#编程中,经常需要处理应用程序的配置信息,例如数据库连接字符串、用户界面的语言设置等。这些配置信息通常存储在配置文件中,便于程序运行时动态加载和修改。C#提供了一种...

    android中读取properties文件

    在Android开发中,读取`properties`文件是一个常见的任务,主要用于存储配置信息或者与Java中的`.properties`文件进行交互。`.properties`文件是一种简单的键值对格式,常用于跨平台的配置存储。以下是对这个主题的...

    properties文件读写

    properties文件读写操作

    怎样读取properties文件内容

    本文将详细介绍如何使用Java中最基本的方式来读取`properties`文件中的内容。 #### 核心知识点 1. **`Properties`类简介** 2. **加载`properties`文件** 3. **读取`properties`文件中的属性值** #### `Properties...

    java properties文件中文转化

    Java Properties文件是Java编程语言中用于存储配置信息的文本文件,通常以.properties为扩展名。这类文件的内容主要是键值对,广泛应用于各种配置场景,如应用程序的设置、国际化(i18n)文本等。然而,由于历史原因...

    java读写properties配置文件

    ### Java读写Properties配置文件详解 #### 一、引言 在Java开发中,`Properties`类被广泛用于处理各种类型的配置文件。这些文件通常包含了应用程序运行时所需的配置信息,如数据库连接信息、系统参数等。`...

    读取properties返回map并写入文件

    本篇文章将详细讲解如何读取.properties文件,将其内容转化为Map对象,以及如何将这个Map对象写回到新的文件中。 首先,我们需要了解什么是.properties文件。这是一种文本格式的文件,用于存储键值对,其中每个键和...

    使用J2SE API读取Properties文件的六种方法

    在Java开发中,配置文件通常是用来存储应用的配置参数或者环境设置,而Properties文件是最常见的配置文件格式。本文将详细讲解使用J2SE API来读取Properties文件的六种方法。 1. **使用java.util.Properties类的...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    总结一下,处理Java中的Properties文件时,关键是正确指定文件路径,以及在写入和读取时妥善管理文件流。确保关闭流并根据需要刷新,以避免数据丢失或未更新的问题。通过学习和实践这些解决方案,你将在Java应用开发...

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    总结一下,处理Java中的Properties文件读写时,需要注意文件路径的准确性、文件的读写权限以及缓存问题。通过以上方法,应该能够有效解决描述中提到的问题。对于提供的"新建文本文档.txt",虽然不是Properties文件,...

    eclipse下properties文件中文乱码的解决方案

    在IT开发领域,尤其是使用Eclipse作为集成开发环境(IDE)的开发者,经常会遇到一个令人头疼的问题——Properties文件中的中文字符出现乱码。这一现象不仅影响代码的可读性,还可能造成程序运行错误。本文将深入探讨...

    Java读取Properties文件的六种方法

    ### Java读取Properties文件的六种方法 在Java开发中,`Properties` 文件常用于存储配置信息,如数据库连接字符串、应用配置等。正确且高效地读取这些配置文件对于程序运行至关重要。本文将详细介绍六种不同的方法...

    ResourceBundle与Properties读取maven中resources目录下的资源文件

    ### ResourceBundle与Properties读取Maven中Resources目录下的资源文件 #### 一、概述 在Java开发过程中,我们经常需要读取资源文件中的配置信息。在Maven项目中,`src/main/resources`目录下通常存放了各种配置...

    JQuery实现本地文件的读取、文件内容的复制

    本文将深入探讨如何使用jQuery实现本地文件的读取和文件内容的复制,这对于网页应用中的数据导入、导出或者用户交互功能非常重要。 首先,我们需要明白jQuery本身并不直接支持文件系统的操作,因为它主要是为浏览器...

    Properties 文件比较工具

    `diffProperties.java`文件很可能是这个工具的主要实现部分,它可能包含了读取两个properties文件,比较其内容并显示差异数目的逻辑。在Java中,我们可以使用`Properties`类的`entrySet()`方法获取所有键值对,然后...

Global site tag (gtag.js) - Google Analytics