<!-- Error -->
我们在解析配置文件的时候,常常会为路径发愁,我就遇到过这样的情况
如上图所示:
ParseProperties.java是配置文件database.properties的解析类,那么我们怎样去取得它的路径并解析起配置呢?看解析类ParseProperties的源代码如下:
package zy.pro.sc.db;
import java.util.*;
import java.io.*;
public class ParseProperties {
Properties properties = new Properties();
public ParseProperties() {
try{
this.parseProp();
}catch(Exception e){
e.printStackTrace();
}
}
public Properties parseProp()throws IOException {
InputStream is=this.getClass().getResourceAsStream("database.properties");
properties.load(is);
is.close();
return null;
}
public String getProperties(String propStr){
return properties.getProperty(propStr);
}
public static void main(String[] args) {
ParseProperties pp=new ParseProperties();
String driver=pp.getProperties("jdbc.driver");
System.out.println(driver);
}
}
看粗体部分,this.getClass()方法可以得到了当前类的Class对象,也可以用ParseProperties.class.getClass()方法来实现同样的效果。之后调用其getResourceAsStream("database.properties")方法来解析配置文件。getResourceAsStream()方法解析文件时候的相对路径是当前类的包路径。
就当前的包来说,zy.pro.sc.db对应的路径是src/zy/pro/sc/db。由于我们要解析的文件和解析类在同一目录下,所以我们的路径是"database.properties"。
如果我们的解析文件和解析类不在同一目录下呢,如以下目录结构:
那么先看一下我们解析类的代码:
InputStream is=this.getClass().getResourceAsStream("/database.properties");
解析路径变成了"/database.properties", “/“表示取当前类所在的包的根路径下的database.properties文件,也就是相对于ParsePropertie.class的包的根路径下的 database.properties文件。
用这种方法更有灵活性。此地要认真体会。不用这种方法,你的解析类只能在目录结构不发生改变的情况下使用。否则将发生异常。例如:你的解析类在servlet中调用的时候就会抛出找不到文件的异常。
此路径的定位方法也可以使用于解析XML的文件。详细情况同上。
分享到:
相关推荐
FatFs配置项定义在`ff.h`和相关的配置文件中,下面是一些关键配置项的说明: - `_USE_LFN`:这个配置项决定是否启用长文件名(LFN)支持。长文件名支持是FAT32的一个特性,但并非所有版本的FatFs都支持。 - `_MAX_...
### Linux新手入门及安装配置详解 #### 一、入门篇:了解Linux与基本概念 Linux是一种免费开源的操作系统,基于Unix的设计思想,由Linus Torvalds在1991年首次发布。它以其高度的稳定性、安全性以及广泛的硬件支持...
Linux新手入门及安装配置常见问题解答(FAQ) 入门篇: Linux是一种开源操作系统,适用于各种用途,包括个人电脑、服务器和嵌入式系统。对于新手来说,了解Linux的基础知识和安装流程至关重要。 安装篇: 1. 如何...
通过对Log4j的配置文件进行详细的解析,我们可以了解到如何灵活地配置Log4j来满足不同应用场景的需求。合理的日志配置不仅可以帮助开发者更好地追踪问题,还可以提高系统的可维护性和扩展性。希望本文能帮助初学者...
Mavlink 的配置文件包含了这些信息,允许软件正确解析和处理接收到的数据。 在 C++、C#、Java 等编程语言中,开发者可以使用 Mavlink 库来构建和解析这些消息,实现地面控制站与飞行控制器之间的交互。这些库提供了...
本教程“SpringMVC新手入门Demo1_2”旨在帮助新手快速入门,通过五个不同的示例(test7、test9、test6、test10、test8)来逐步解析SpringMVC的核心组件和工作流程。 首先,SpringMVC中的核心组件包括...
服务器新手入门教程主要涵盖了几大核心知识点,包括服务器操作系统的选择与配置、网络服务的搭建、域环境的构建、用户及权限管理、文件同步与分布式文件系统(DFS)、Web服务器的部署以及网络负载均衡(NLB)的配置...
开发目录结构通常包括源代码、头文件、配置文件、库文件等,每个目录都有特定的功能,例如存放特定层次的协议栈代码、驱动代码或应用程序代码。理解这个结构有助于开发者有效地组织和管理项目。 6. **MMI制作** ...
ActionServlet会解析请求,根据配置文件(通常位于/WEB-INF/struts-config.xml)中的定义来调度业务逻辑和视图。 在开始使用Struts1之前,你需要做以下准备工作: 1. 获取Struts1的jar包,比如版本1.2.x,将其复制...
在这个新手入门实例中,你将学习到以下关键知识点: 1. **创建Web Service**:首先,你需要创建一个提供服务的服务器端程序,通常使用Java的JAX-WS(Java API for XML Web Services)或者.NET的ASMX等技术。这个...
### Windchill_二次开发新手入门常用的API #### 1. 查询零件(Part)名称或编号 **API**: ```java // 通过名称查询零件 WTPartHelper.findPartByName(name); // 通过编号查询零件 WTPartHelper.findPartByNumber...
### DISCUZ插件开发新手入门详析 #### 引言 DISCUZ!作为一款广泛使用的论坛系统,其插件开发能力对于扩展系统功能、满足个性化需求具有重要意义。本文旨在为初学者提供一份详尽的DISCUZ插件开发指南,通过分析标题...
4. **新手入门步骤:** - 安装和配置 JDK、Maven 或 Gradle、Tomcat 服务器以及相关的开发工具。 - 创建 Maven 或 Gradle 项目,引入 Spring MVC 和 Hibernate 相关依赖。 - 设计数据库表并创建对应的实体类,...
在这个"SpringMVC新手入门Demo1_1"压缩包中,包含了五个不同的示例项目,帮助初学者逐步理解并掌握SpringMVC的核心概念和使用方法。 1. **模型(Model)**: 在SpringMVC中,模型通常是Java对象,负责存储应用的数据...
【F28M35新手入门】:TI的F28M35是一款先进的双核处理器,专为工业控制、自动化和其他嵌入式应用设计。它集成了两个处理核心,一个M3核(基于ARM Cortex-M3)和一个C28核,提供了强大的计算能力和实时响应性能。 ##...
### Linux新手入门十三课:全面解析与学习指南 #### Linux目录结构及说明 Linux系统以其独特的目录结构组织文件,这是所有Linux用户必须掌握的基础知识。Linux的目录结构如同一棵倒置的大树,从根目录(/)开始...
《Solaris新手入门手册》是针对初学者的一份详尽指南,主要涵盖了Solaris操作系统的基础操作和管理知识。本文将深入解析手册中的关键概念和技术。 首先,了解超级用户状态至关重要,因为这是执行系统管理和维护任务...
- `$config`指向配置文件的位置。 - `YII_DEBUG`常量用于设置调试模式,生产环境中应取消此定义。 #### 五、深入学习资源 - **作者提示**: - **代码包含**: 所有需要的代码都包含在文档中。 - **疑问解答**: ...
本资源"LabVIEWLabview新手入门学习程序.rar"显然是为初学者提供的一套学习资料,旨在帮助用户快速掌握LabVIEW的基本操作和编程技巧。 在LabVIEW中,编程通过连接各种功能块的图标(称为VI,Virtual Instrument)来...
### DOS命令新手入门知识点详解 #### 一、基础命令概览 DOS(Disk Operating System)是一种基于文本的命令行操作系统界面,对于初学者来说掌握一些基本的DOS命令是非常必要的。以下是从“新手入门的DOS命令宝典”...