`

读取程序路径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 页面中,...

    读取配置文件工具类.rar

    1. 加载配置文件:通过`Properties.load(InputStream)`方法加载文件,通常在类路径下查找文件。 2. 获取属性值:使用`Properties.getProperty(String key)`方法获取特定键对应的值。 3. 遍历所有属性:通过迭代`...

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

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

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

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

    java csv文件读取工具类

    一个非常好用的csv文件操作工具

    Java读取XML文件自制工具类

    //通过文件路径及文件名读取xml public XMLReader(String path, String filename); //初始化读取包下的的XML文件 public XMLReader(Package package1, String fileName); //读取WEB-INF下的xml文件 public XMLReader...

    【强2】30个java工具类

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

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

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

    电脑程序内存读取工具

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

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

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

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

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

    实现文件拖拽入窗体中读取文件路径.zip_C#_menbis

    在C#编程中,文件拖放(Drag and Drop)功能是一项常用的技术,它允许用户通过鼠标将文件从桌面或其他位置直接拖放到应用程序的窗口中,从而实现文件路径的读取。"menbis"可能是一个程序员的别名或者项目代号。下面...

    GeoTiff读取程序

    GeoTiff读取程序 GeoTiff读取程序是使用C++语言编写的,用于读取GeoTiff文件。GeoTiff是一种基于TIFF(Tagged Image ...这个GeoTiff读取程序是一个功能强大且灵活的工具,能够广泛应用于GIS、遥感、地图制图等领域。

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

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

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

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

    DICOM文件读取程序

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

    java工具类(包括bean操作工具类、浏览器读取工具累、汉字转拼音工具类、图片处理工具类、ip工具类、随机码工具类、json)

    java工具类(包括bean操作工具类、浏览器读取工具累、汉字转拼音工具类、图片处理工具类、ip工具类、随机码工具类、json)

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

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

    Java文件工具类

    Java文件工具类

Global site tag (gtag.js) - Google Analytics