`
nannan408
  • 浏览: 1784333 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java读properties的通用类,兼容linux和windows

 
阅读更多
1.前言。
  如题。
2.代码。
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 读取Properties综合类
 * @author lijn
 * 2014-02-25
 */
public class PropertiesUtil {
	/**
	 * 得到某一个类的路径
	 * 
	 * @param name
	 * @return
	 */
	public static String getPath(Class name) {
		String strResult = null;
		if (System.getProperty("os.name").toLowerCase().indexOf("window") > -1) {
			strResult = name.getResource("/").toString().replace("file:/", "")
					.replace("%20", " ");
		} else {
			strResult = name.getResource("/").toString().replace("file:", "")
					.replace("%20", " ");
		}
		return strResult;
	}
	/**
	 * 读取所有的property
	 * @param filename properties文件路径
	 * @return 所有的property的集合(map形式)
	 */
	@SuppressWarnings("unchecked")
	public static Map<String, String> getPropties(String filename) {
		if (null == filename) {
			return null;
		}
		String filePath = getPath(PropertiesUtil.class) + filename;
		Properties props = new Properties();
		InputStream in = null;
		try {
			in = new BufferedInputStream(new FileInputStream(filePath));
			props.load(in);
			Map<String, String> map = new HashMap<String, String>();
			Enumeration en = props.propertyNames();
			while (en.hasMoreElements()) {
				String key = (String) en.nextElement();
				String Property = props.getProperty(key);
				map.put(key, Property);
			}
			return map;
			// 关闭资源
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				in.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return null;
	}
	/**
	 * 获取某个property的值
	 * @param filename 文件名
	 * @param key  property的key
	 * @return property的value
	 */
	public static String getProp(String filename, String key) {
		if (null == filename || null == key) {
			return null;
		}
		String filePath = getPath(PropertiesUtil.class) + filename;
		Properties props = new Properties();
		InputStream in = null;
		try {
			in = new BufferedInputStream(new FileInputStream(filePath));
			props.load(in);
			return props.getProperty(key);
			// 关闭资源
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				in.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return null;
	}
}


0
0
分享到:
评论

相关推荐

    支持windows和linux的kafka安装包

    Java的跨平台特性使得Kafka可以在Windows和Linux等不同操作系统上运行。Kafka的API设计使得开发者可以方便地在Java应用程序中集成Kafka的功能,进行消息生产、消费以及处理。 **Windows上的Kafka安装** 1. **下载*...

    Java串口通信详解

    在Java中,SUN提供了一个名为CommAPI的串口通信库,包括`comm2.0.jar`(Windows)和`comm3.0.jar`(Linux/Solaris)。IBM也有一套串口通信API,不过这里主要介绍SUN的Windows版本。要使用这个库,需要下载`javacomm...

    元旦倒计时代码+快速部署+Java

    在本文中,我们将深入探讨如何使用Java编程语言创建一个通用的元旦倒计时程序,以及如何进行快速部署。这个程序可以作为一个很好的实践平台,帮助开发者熟悉Java中的日期和时间处理,以及基本的程序设计概念。 首先...

    Java 使用SMSLib通过串口通讯收发短信

    3. Java串口通信库,对于Windows系统通常是comm.jar,其他非Windows系统可以使用RXTXcomm.jar和相应的库文件(如Linux下的rxtxSerial.so)。 安装步骤: - 将comm.jar或RXTXcomm.jar放入JDK的jre/lib/ext目录下。 -...

    Orbacus-4.3.4 for linux

    6. **稳定性与兼容性**:作为官方版本,Orbacus-4.3.4应该具有良好的稳定性和与其他CORBA标准的兼容性,确保了系统的可靠性和可扩展性。 在安装【OB-4.3.4】这个压缩包时,通常会包含以下步骤: 1. 解压文件:首先...

    超级有影响力霸气的Java面试题大全文档

     final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的...

    Maven2 配置指南(java 项目管理之路)

    - **结论**:Maven通过其独特的项目管理和构建方式为Java项目带来了极大的便利性和可扩展性。 #### 二、安装和运行Maven 1. **验证Java安装** - **必要性**:Maven需要Java环境支持,因此首先需要确保Java环境已...

    Protege4.0官方文档

    文档中虽未明确列出具体要求,但通常来说,Protege 4.0能够在Windows、Mac OS X和Linux等多种平台上运行,并且至少需要Java SE 1.5或更高版本的支持。 #### 三、OWL本体是什么? 本体是形式化定义的词汇表,它包含...

    JBrower DJNativeSwing

    这个库的主要目标是提供一个与本地操作系统(如Windows、Mac OS X或Linux)上的原生浏览器功能相一致的体验。DJNativeSwing通过利用Java的JNI(Java Native Interface)技术来实现这一目标,使得Java应用能够调用...

    mysql数据库在springboot项目中启动报错问题.docx

    4. **兼容性问题**:使用的是 Windows 7 系统,该系统版本可能与 Java 8 及其他相关技术栈存在兼容性问题。 5. **MyBatis Plus 版本问题**:使用的 MyBatis Plus 版本可能与 Spring Boot 版本不兼容。 #### 解决...

    ubuntu eclipse

    标题“Ubuntu上的Eclipse”和描述“在Ubuntu上使用Eclipse导入已有工程”涉及的是Linux操作系统中的Java集成开发环境——Eclipse的使用技巧。这里我们将深入探讨如何在Ubuntu环境下设置和操作Eclipse,特别是导入...

    Universal-Setup-OLD:这是一个通用的设置应用程序

    Java的跨平台能力使得开发出的通用设置应用程序能够在不同的操作系统上运行,比如Windows、Linux和Mac OS。Java应用程序通常由Java虚拟机(JVM)执行,JVM负责解析和执行字节码,确保程序能在任何支持JVM的平台上...

    Oracle程序两种接口ADO与OCI对比.docx

    Oracle数据库在各种编程语言中都有丰富的支持,包括VB、Delphi、C++和Java等,甚至可以通过脚本语言如ASP、JSP、Perl等进行访问。对于C++开发者,有多种接口选择,如ADO(ActiveX Data Objects)、OCI(Oracle Call ...

    JMeter中文使用手册

    - 操作系统:由于JMeter是纯Java应用程序,因此可以在任何拥有适当Java实现的操作系统上运行,如Unix(Solaris、Linux等)、Windows(98、NT、2000、XP)、OpenVMS Alpha 7.3+等。 - **可选项:** - 如果计划开发...

    Jira安装手册

    在开始安装之前,请确保你的系统满足Jira的最低硬件和软件要求,包括足够的内存、硬盘空间以及兼容的Java运行环境(JRE或JDK)。 1. **下载Jira**: 你可以从Atlassian官方网站下载Jira的最新稳定版本。根据你的需求...

    jvm内存参数调优

    如果不指定包名或类名,则运行所有包和类中的断言。例如,要开启包`com.example.test`中的断言,可以使用命令`java -ea:com.example.test &lt;MainClass&gt;`。 - **示例**:`-ea:com.example.test`。 - **-...

    hadoop&spark环境配置.pdf

    - **`core-site.xml`**: 配置Hadoop通用属性,包括HDFS和MapReduce的I/O设置。 - **`hdfs-site.xml`**: 配置HDFS属性,包括NameNode、辅助NameNode和DataNode的配置。 - **`mapred-site.xml`**: 配置MapReduce属性,...

    weblogic配置详细文档

    在Linux系统中实现WebLogic Server和Oracle数据库的自动启动,可以通过编写脚本并在系统启动时执行这些脚本来实现。 **4.5 配置WebLogic Server集群** WebLogic Server集群是一种提高应用程序可用性和负载均衡的...

    PSC

    例如,一个Java应用可能有一个`application.properties`文件来存储通用配置,然后根据运行的平台(如Windows、Linux或Mac OS)加载相应的`platform.properties`文件,这个文件包含了与特定平台相关的配置项。...

Global site tag (gtag.js) - Google Analytics