`

读取程序路径PropHelper工具类

阅读更多
package com.ving.dataexchange.util;

public class PropHelper {
	/**
	 * guessPropFile:
	 * 
	 * @param cls:和要寻找的属性文件处于相同的包中的任意的类
	 * @param propFile:要寻找的属性文件名
	 */
	public static java.io.InputStream guessPropFile(Class cls, String propFile) {
		try {
			// 得到类的类装载器
			ClassLoader loader = cls.getClassLoader();

			// 先从当前类所处路径的根目录中寻找属性文件
			java.io.InputStream in = loader.getResourceAsStream(propFile);
			if (in != null)
				return in;

			// 没有找到,就从该类所处的包目录中查找属性文件
			Package pack = cls.getPackage();
			if (pack != null) {
				String packName = pack.getName();
				String path = "";
				if (packName.indexOf(".") < 0)
					path = packName + "/";
				else {
					int start = 0, end = 0;
					end = packName.indexOf(".");
					while (end != -1) {
						path = path + packName.substring(start, end) + "/";
						start = end + 1;
						end = packName.indexOf(".", start);
					}
					path = path + packName.substring(start) + "/";
				}
				in = loader.getResourceAsStream(path + propFile);
				if (in != null)
					return in;
			}

			// 如果没有找到,再从当前系统的用户目录中进行查找
			java.io.File f = null;
			String curDir = System.getProperty("user.dir");
			f = new java.io.File(curDir, propFile);
			if (f.exists())
				return new java.io.FileInputStream(f);

			// 如果还是没有找到,则从系统所有的类路径中查找
			String classpath = System.getProperty("java.class.path");
			String[] cps = classpath
					.split(System.getProperty("path.separator"));

			for (int i = 0; i < cps.length; i++) {
				f = new java.io.File(cps[i], propFile);
				if (f.exists())
					break;
				f = null;
			}
			if (f != null)
				return new java.io.FileInputStream(f);
			return null;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

	}
	public static String guessPropFilePath(Class cls, String propFile) {
		try {
			// 得到类的类装载器
			ClassLoader loader = cls.getClassLoader();

			// 先从当前类所处路径的根目录中寻找属性文件
			java.io.InputStream in = loader.getResourceAsStream(propFile);
			if (in != null)
				return propFile;

			// 没有找到,就从该类所处的包目录中查找属性文件
			Package pack = cls.getPackage();
			if (pack != null) {
				String packName = pack.getName();
				String path = "";
				if (packName.indexOf(".") < 0)
					path = packName + "/";
				else {
					int start = 0, end = 0;
					end = packName.indexOf(".");
					while (end != -1) {
						path = path + packName.substring(start, end) + "/";
						start = end + 1;
						end = packName.indexOf(".", start);
					}
					path = path + packName.substring(start) + "/";
				}
				in = loader.getResourceAsStream(path + propFile);
				if (in != null)
					return path;
			}

			// 如果没有找到,再从当前系统的用户目录中进行查找
			java.io.File f = null;
			String curDir = System.getProperty("user.dir");
			f = new java.io.File(curDir, propFile);
			if (f.exists())
				return f.getAbsolutePath();

			// 如果还是没有找到,则从系统所有的类路径中查找
			String classpath = System.getProperty("java.class.path");
			String[] cps = classpath
					.split(System.getProperty("path.separator"));

			for (int i = 0; i < cps.length; i++) {
				f = new java.io.File(cps[i], propFile);
				if (f.exists())
					break;
				f = null;
			}
			if (f != null)
				return f.getAbsolutePath();
			return null;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

	}
}
分享到:
评论

相关推荐

    JAVA读取同一路径下所有类及其方法

    JAVA读取同一路径下所有类及其方法 在 Java 中,获取同一路径下所有类及其方法是非常重要的,这样才能对权限进行控制。在本文中,我们将提供一种获取所有类及其方法的方法。 获取同一路径下所有类及其方法 在开发...

    JS正确读取文件路径

    JS 正确读取文件路径 在进行 JSP 页面开发时,想要获取文件的路径,进行一些操作,常常会遇到由于 IE 安全性设置造成的不能正确读取文件路径的问题。下面将详细介绍该问题的解决方法。 问题描述 在 JSP 页面中,...

    易语言文件名读取应用路径

    易语言文件名读取应用路径

    matlab读取csv文件例程,读取指定路径下的所有csv文件

    matlab读取csv文件例程,读取指定路径下的所有csv文件

    jaava和jsp工具类

    [工具类] 读取、打印输出、保存xml .java [工具类] 获得汉字拼音首字母的java工具类 .java [工具类] 获取绝对路径 .java [工具类] 记录log日志文件的工具类 .java [工具类] 连接数据库的工具类 .java [工具类] ...

    MonInfo-电脑接口读取显示设备EDID工具(exe可执行程序).zip

    MonInfo-电脑接口读取显示设备EDID工具(exe可执行程序).zipMonInfo-电脑接口读取显示设备EDID工具(exe可执行程序).zipMonInfo-电脑接口读取显示设备EDID工具(exe可执行程序).zipMonInfo-电脑接口读取显示设备EDID...

    30个java工具类

    [工具类] 读取、打印输出、保存xml .java.txt [工具类] 分页split_page.jsp .jsp.txt [工具类] 获得汉字拼音首字母的java工具类.java.txt [工具类] 获取绝对路径 .java.txt [工具类] 记录log日志文件的工具类 .java....

    delphi程序路径基本操作

    Delphi的Inno Setup或InstallAware等安装工具允许设置默认安装路径,并在安装过程中获取用户的自定义路径。 综上所述,Delphi程序路径的基本操作涉及获取、构建、修改和使用各种类型的路径,包括程序路径、工作目录...

    基于MFC OpenCV读取任意路径图片并显示

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库结合OpenCV库来实现从任意路径读取并显示图像的功能。MFC是微软为Windows应用程序开发提供的一组C++类库,而OpenCV则是一个强大的计算机视觉库...

    配置文件读取JAVA工具类

    系统开发的时候,都会涉及到一些配置文件的读取,为方便从配置文件中读取我们预先设置的值,我做了一个简单配置文件读取工具类。这个类主要基于apache开源项目commons-configuration,附件是该工具类完整代码,仅供...

    电脑程序内存读取工具

    内存读取工具是一种用于分析和调试计算机程序的重要软件,它允许用户查看并操作正在运行的程序在内存中的状态。在编程、逆向工程、安全分析和故障排查等场景下,这样的工具是不可或缺的。本文将深入探讨内存读取工具...

    配置文件读取工具类(Java)

    在Java编程中,配置文件是存储...通过创建这样一个配置文件读取工具类,开发人员可以更高效、安全地管理应用程序的配置,同时保持代码的整洁和模块化。在实际项目中,这个工具类可以进一步优化,以适应项目的具体需求。

    Android快速开发系列 10个常用工具类 程序源码

    4. **SharedPreferencesUtil**: SharedPreferences操作工具类,简化了存储和读取应用程序的偏好设置。它可能包含保存键值对,获取特定类型数据,以及清除所有数据的方法。 5. **LogUtil**: 日志打印工具类,用于...

    properties读取工具类设计

    本篇文章将探讨如何设计一个`properties`读取工具类,以便高效、灵活地从这些文件中读取和管理配置参数。 首先,我们需要创建一个`PropertiesUtil`类,它将包含读取`properties`文件的核心方法。这个工具类通常会有...

    c# 读取其他程序的ListView内容工具

    在这个场景中,我们讨论的是一个名为"C# 读取其他程序的ListView内容工具"的实用程序,它允许开发者跨进程读取其他运行中的程序中的ListView控件内容。ListView是Windows Forms中常见的一种控件,通常用于显示数据...

    读取xls表格文件工具类

    读取xls表格文件工具类,很简单的一个类。直接使用即可,

    maven打包后,读取类路径下的配置文件

    maven打包后,读取类路径下的配置文件,pom.xml配置,利用该配置可以成功读取类路径下相应的文件

    DICOM文件读取程序

    在“DICOM文件读取程序”中,开发者已经实现了一些关键功能,这些功能对于医学图像处理至关重要: 1. **DICOM文件读取**:程序能够解析DICOM文件的结构,提取图像数据、元数据(如患者信息、扫描序列、设备信息等)...

    使用poi读取、写入复杂excel工具类(包含样式)

    使用poi读取写入复杂excel内容包括样式,工具类

    Java文件工具类

    Java文件工具类

Global site tag (gtag.js) - Google Analytics