`

j2se----properties 和路径路径路径问题

    博客分类:
  • J2SE
阅读更多
/**
Properties 类是对HashTable的封装,他可以被看出放在硬盘中的HashMap

注意:配置文件里面的key和value是这样的
aaakey=afafdafdsf
*/
1。  Properties props = new Properties();
  props.load(Test.class.getClassLoader()
      .getResourceAsStream("com/zhe/aaa.properties"));
  String value = props.getProperty("aaaKey");
这种方式是用类加载器去加载普通文件,本来类加载器是用来加载.class文件的,但是既然能加载.class文件,那么也就能加载普通文件,不过普通文件必须在类路径中,他会到类路径中逐一的寻找需要加载的文件,注意,我们在src下的东西.java都变成.class,其他不变,然后被全部移到bin目录下(web工程就是web root目录下的classes目录)。。。。。类加载器只能读不能写哈。。。如果要写的话还得用下面这种

再说一句:struts,spring这些框架的配置文件都是用类加载器来读取的,所以他们都是放在bin目录下,所以我们都去src目录下找哈。。。。

File f = new File(TestCobertura.class.getClassLoader().getResource(("com/test/zwz/test1/1.abc").getFile());


或者  InputStream ips = new FileInputStream("aaa.properties");
    Properties props = new Properties();
   props.load(ips);
.....

这里aaa.properties的位置是与src平级的地方

2。请辨别下面两个的区别:

Test.class.getClassLoader()
      .getResourceAsStream("com/zhe/aaa.properties");//指定包,只能一级一级的找,不能相对,我们想象getClassLoader()就是得到根(bin或者classes)

Test.class.getResourceAsStream("aaa.properties");//有相对绝对的概念
第一种的比喻: 你每次找我要可乐,然后我就每次跑到可乐供应商那里去拿到可乐然后给你

第二种的比喻:你每次都找我要可乐,然后我灵机一动,批发了一箱可乐,然后卖给你。。。

相对的时候是相对于这个类自己的上级目录

Test.class.getResourceAsStream("/aaa.properties");这种方式是绝对的做法,这里的/代表webRoot/,所以我们需要加载meta-inf下面的东西时可以这样:getClass().getResourceAsStream(/META-INF/a.txt); 或者是bin...

区别于:
ClassLoader loader = Thread.currentThread().getContextClassLoader();
		String contextClassLoader = loader.getResource("/").toString();

这个可以获得当前线程的啊~~~


Test.class.getResourceAsStream("resouces/aaa.properties");//这还是相对的做法,resouces前面相当于接了Test所在的包

Test.class.getResource("") //因为是使用的相对路径,那么会在当前Test.class的位置来找,又因为什么都没有填,所以是找目录,那么就打印这个路径了。。。形如:file:/D:/program/openeap_devstudio/workspace/MyTest/bin/com/abc/
Test.class.getResource("/")//因为是绝对路径,那么一开始就跳到了bin目录上开始找,因为是找目录,所以会打印根目录的地址,file:/D:/program/openeap_devstudio/workspace/MyTest/bin/

注意:找目录,一般会以斜杠结尾,但是如果这样:Test.class.getResource("/com")这是明确明确不以斜杠结尾,就file:/D:/program/openeap_devstudio/workspace/MyTest/bin/com


注意:如果是web project,那么把上面的
file:/D:/program/openeap_devstudio/workspace/MyTest/bin/
改成file:/D:/program/openeap_devstudio/workspace/MyWebTest/WebRoot/WEB-INF/classes/即可

3。
for(Enumeration e=props.propertyNames(); e.hasMoreElements();){   
    String key=(String) e.nextElement();   
    System.out.println(key+"===>"+p.getProperty(key));   
}  


    for(Object t:props.keySet()){   
       System.out.println(t+"="+p.getProperty(t.toString()));   
    } 
//这时那个value就是afafdafdsf


4.既然可以load当然也可以存储,但是存储的键值对必须是String 

props.setProperty("count",String.valueOf(1));//这只是放到了内存中
props.store(new FileOutputStream("count.txt"),"这句话会被写到count.txt的顶上");


下面获取调用的类的路径
 Class cs = Reflection.GetCallerClass(2);    
 System.out.println(caller.getProtectionDomain().getCodeSource().getLocation().getFile());

或者:
StackTraceElement stack[] = (new Throwable()).getStackTrace(); 




分享到:
评论

相关推荐

    J2SE API读取Properties文件六种方法

    ### J2SE API读取Properties文件六种方法 在Java开发过程中,经常需要读取配置文件来获取系统运行时所需的参数或配置信息。`Properties`类是Java标准库中的一个非常重要的工具类,用于处理键值对形式的配置数据。...

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

    本文将详细讲解使用J2SE API来读取Properties文件的六种方法。 1. **使用java.util.Properties类的load()方法** 这是最基本的方法,通过`FileInputStream`打开文件,然后使用`Properties`类的`load()`方法加载内容...

    在web和j2se中两个不同环境下 读取配置文件 备忘

    本备忘主要关注在Web环境(如Tomcat、Jetty等)和J2SE(Java Standard Edition)环境中如何读取配置文件,以便于应用的正常运行。 首先,我们来看Web环境中的配置文件读取。在Web应用中,配置文件通常存放在`WEB-...

    windows2003 + IIS6 + TOMCAT6 + J2SE1.5.0

    - `workers.properties`:定义Tomcat的工作配置,包括Tomcat的安装路径、Java运行环境路径以及Tomcat的监听端口等。 - `uriworkermap.properties`:映射URI到特定的Worker,例如将所有`.jsp`请求映射到`ajp13`。 ...

    Eclipse中web-inf和meta-inf文件夹的信息

    它不适用于普通的 J2SE 项目。 **1. WEB-INF/web.xml 文件** - **功能**: 定义 Web 应用程序的部署描述符,包含 Servlet、Filter、Listener 等的配置信息。 - **重要性**: 是 Web 应用的核心配置文件之一,控制着 ...

    API读取Properties文件的六种方法

    本文将详细介绍六种使用J2SE API读取`Properties`文件的方法。 #### 1. 使用 `java.util.Properties` 类的 `load()` 方法 这种方法是最常见的读取`Properties`文件的方式。它涉及到创建一个`InputStream`来读取...

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

    本文将详细介绍使用J2SE API(Java Standard Edition API)读取Properties文件的六种方法,旨在帮助开发者更好地理解和操作这类文件。 1. **使用InputStream** ```java Properties prop = new Properties(); ...

    ARCIMS安装指南

    - **路径设置**:确保所有路径正确无误,特别是J2SDK和Tomcat的安装路径。 - **JK2配置**:正确配置JK2模块,是实现Apache与Tomcat之间有效通信的关键。 通过以上步骤,可以顺利完成ARCIMS的安装与基本配置,为后续...

    J2ME基于Eclipse+EclipseME+WTK的J2ME平台搭建

    - **J2SE JDK1.6**:这是Java 2 Standard Edition的版本之一,提供了构建和部署Java应用程序所需的核心类库、Java虚拟机(JVM)以及开发工具。 - **Eclipse SDK 3.4.2**:Eclipse是一个开源的集成开发环境(IDE),...

    java中Properties文件加载和使用方法

    - 当处理Properties文件时,需要注意编码问题,尤其是当属性文件包含非ASCII字符时,可能需要设置适当的编码(如UTF-8)。 - 使用`store()`方法可以将Properties对象保存回文件,但要确保正确处理异常和资源关闭。...

    maven项目eclipse导入步骤(可以让你的maven项目正常运行)

    在项目上右键选择“Search” > “File Search”,输入当前项目名称进行全局搜索,然后逐一修改相关的文件路径和名称。 4. **部署装配配置**: - 再次在项目上右键选择“Properties” > “Deployment Assembly”。 ...

    Tomcat5+IIS5服务器架设方法

    在Windows 2000 Server环境下,配置IIS5和Tomcat5共用80端口,可以让Web应用同时利用IIS的强大功能和Tomcat对Java应用的支持。以下是详细的配置步骤: **准备阶段** 1. **Java 2 SDK 1.4.2 或更高版本** - 访问`...

    java培训总结

    - 方法(Methods)和属性(Properties)的集合。 - **接口(Interface)**: - 定义行为的标准。 - 可以被多个类实现。 - **内部类(Inner Class)**: - 定义在一个类内部的类。 - 可以访问外部类的成员。 - **异常处理...

    Derby数据库的使用指南--包括存图片到数据库和读取数据库中的图片操作

    环境:Windows XP professional, JDK 1.6, Eclipse 3.3 安装JDK 6.0之后会安装自带的纯Java的数据derby. 也就是说,如果安装JDK 6.0版本...该数据数应该为J2ME编程带来非常大的好处,同时也为J2SE和J2EE编程来带方便。

    阿里云-负载均衡服务SDK手册.pdf

    开发者需将解压后的`aliyun-sdk-java-online_standard-20141120.jar`文件添加到项目构建路径中,例如在Eclipse中,通过右键点击工程 -> Properties -> Java Build Path -> Libraries -> Add External JARs进行导入。...

    tomcat配置

    - **日志管理**:自定义log4j.properties或logging.properties,控制日志输出级别和格式,便于调试和监控。 通过上述步骤,不仅能够完成Tomcat 6.0的基本配置,还能进一步理解JSP、Servlet和Bean的工作原理,为后续...

    Windows Server IIS和Tomcat5多站点配置

    选择适合所有平台的J2SE SDK,然后下载适用于Windows的离线安装包。安装时可以选择自定义路径,例如`d:\jdk`。 2. **Tomcat安装**: - 接下来,从Apache Jakarta网站下载Tomcat 5.0.24或更高版本。同样,根据提示...

    非常详细的ArcIMS9.2的安装与配置(每步都有贴图)

    - 执行`jdk-1_5_0-windows-i586.exe`,接受许可协议,自定义安装路径,例如`E:\ThirdPartTools\Java\jdk1.5.0`,并安装J2SE运行时环境(JRE)。 2. **安装 Apache 2.0.59** - 选择适合的安装包,如`apache_2.0.59...

    Struts实践入门(原创)

    确保已安装 Ant、Xalan 和 Xerces,并且正确配置了这些工具的路径。 **解压文件**:将 `jakarta-struts-1.1-b1-src.zip` 解压到目录 `D:\jakarta\struts-1.1-b1-src`;将 `jakarta-struts-1.1-b1-lib.zip` 解压到...

Global site tag (gtag.js) - Google Analytics