1.如何获得当前文件路径
常用:
字符串类型:System.getProperty("user.dir");
综合:
package com.zcjl.test.base;
import java.io.File;
public class Test {
public static void main(String[] args) throws Exception {
System.out.println(
Thread.currentThread().getContextClassLoader().getResource(""));
System.out.println(Test.class.getClassLoader().getResource(""));
System.out.println(ClassLoader.getSystemResource(""));
System.out.println(Test.class.getResource(""));
System.out.println(Test.class.getResource("/"));
System.out.println(new File("").getAbsolutePath());
System.out.println(System.getProperty("user.dir"));
}
}
file:/E:/workSpace/javaTest/target/classes/
file:/E:/workSpace/javaTest/target/classes/
file:/E:/workSpace/javaTest/target/classes/
file:/E:/workSpace/javaTest/target/classes/javaAPI/
file:/E:/workSpace/javaTest/target/classes/
E:\workSpace\javaTest
E:\workSpace\javaTest
2.Web服务中
(1).Weblogic
WebApplication的系统文件根目录是你的weblogic安装所在根目录.
例如:如果你的weblogic安装在c:\bea\weblogic700……
那么,你的文件根路径就是c:\.所以,有两种方式能够让你访问你的服务器端的文件:a.使用绝对路径:比如将你的参数文件放在c:\yourconfig\yourconf.properties,直接使用 new FileInputStream("/yourconfig/yourconf.properties");b.使用相对路径:相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放在yourwebapp\yourconfig\yourconf.properties,这样使用:new FileInputStream("yourconfig/yourconf.properties");这两种方式均可,自己选择.
(2).Tomcat
在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin
(3).Resin
不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET的路径为根.比如用新建文件法测试File f = new File("a.htm");这个a.htm在resin的安装目录下
(4).如何读相对路径哪?
在Java文件中getResource或getResourceAsStream均可
例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web发布根路径下WEB-INF/classes
也可以getClass().getClassLoader().getResourceAsStream(filePath)//filePath不是带“/”的
(5).获得文件真实路径
string file_real_path=request.getRealPath("mypath/filename");
通常使用request.getRealPath("/");
3.遗留问题
目前new FileInputStream()只会使用绝对路径,相对
InputStream in1 = new FileInputStream("abc1.properties"); // 相对路径InputStream in2 = new FileInputStream("/abc2.properties"); // 绝对路径,E盘下InputStream in3 = new FileInputStream("e://abc3.properties"); //相对路径
4.按Java文件类型分类读取配置文件
配置文件是应用系统中不可缺少的,可以增加程序的灵活性.java.util.Properties是从jdk1.2就有的类,一直到现在都支持load ()方法,jdk1.4以后save(output,string) ->store(output,string).如果只是单纯的读,根本不存在烦恼的问题.web层可以通过 Thread.currentThread().getContextClassLoader().
getResourceAsStream("xx.properties") 获取;
Application可以通过new FileInputStream("xx.properties");直接在classes一级获取.关键是有时我们需要通过web修改配置文件,我们不 能将路径写死了.经过测试觉得有以下心得:
1.servlet中读写.如果运用Struts 或者Servlet可以直接在初始化参数中配置,调用时根据servlet的getRealPath("/")获取真实路径,再根据String file = this.servlet.getInitParameter("abc");获取相对的WEB-INF的相对路径.
例:InputStream input = Thread.currentThread().getContextClassLoader().
getResourceAsStream("abc.properties");Properties prop = new Properties();prop.load(input);input.close();OutputStream out = new FileOutputStream(path);prop.setProperty("abc", “test");prop.store(out, ”–test–");out.close();
2.直接在jsp中操作,通过jsp内置对象获取可操作的绝对地址.
例:// jsp页面String path = pageContext.getServletContext().getRealPath("/");String realPath = path+"/WEB-INF/classes/abc.properties";
//java 程序InputStream in = getClass().getClassLoader().getResourceAsStream("abc.properties"); // abc.properties放在webroot/WEB-INF/classes/目录下prop.load(in);in.close();
OutputStream out = new FileOutputStream(path); // path为通过页面传入的路径prop.setProperty("abc", “abcccccc");prop.store(out, ”–test–");out.close();
3.只通过Java程序操作资源文件InputStream in = new FileInputStream("abc.properties"); // 相对路径,项目下的路径
OutputStream out = new FileOutputStream
分享到:
相关推荐
Java SUN的几种认证是针对Java开发者和系统管理员的专业资格证明,旨在验证个人在特定Java技术和Solaris操作系统领域的技能和知识。以下将详细解释这些认证及其重要性。 首先,Sun Certified JAVA Programmer (SCJP...
### JAVA资格认证考试试卷JDK1.5:Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 #### 考试编号:310-055 本考试针对的是Java 2 Platform Standard Edition 5.0(即J2SE 5.0)的Sun ...
JAVA认证,全称为Sun Certified Programmer for the Java 2 Platform, Standard Edition (SCJP),是由Sun Microsystems(现已被Oracle收购)推出的针对Java编程语言的官方资格认证。这个认证旨在验证候选者对Java SE...
Java IT认证是面向Java开发人员的一项专业资格考试,旨在验证候选人的编程技能、问题解决能力以及对Java技术的深入理解。这个题库包含了多个部分,分别涵盖了Java语言的基础和JBuilder的应用,对于准备参加此类认证...
Java认证是许多IT专业人士为了提升自身技能和市场竞争力所追求的资格证明,它验证了个人在Java编程语言方面的知识和能力。本压缩包文件“java认证学习资料”包含了一系列资源,帮助备考者全面掌握Java认证所需的知识...
【ccf计算机职业资格认证的题解】 中国计算机学会(CCF)的计算机职业资格认证是业界公认的权威证书,旨在衡量和提升计算机专业人员的技术能力和综合素质。CCF CSP(计算机软件能力验证)是一项针对程序员、软件...
SCJP(Sun Certified Java Programmer)是Sun公司认证的Java程序员资格,后来Sun被Oracle(甲骨文)公司收购,SCJP也相应地改为了OCJP(Oracle Certified Java Programmer)。安装JDK后,通常需要设置java_home、...
Java资料水平考试高程主要针对的是那些希望提升自身Java编程技能、准备参加Java高级程序员资格认证的人员。这个资源包可能包含了一系列与Java高级概念、框架和技术相关的学习材料,旨在帮助考生深入理解Java语言,...
这样的资料对于备考Java相关的资格认证考试,如Oracle Certified Associate (OCA) 或 Oracle Certified Professional (OCP),或是准备大学的期末考试,都是非常有价值的。 首先,我们可以从"JAVA复习题201001答案....
SCJP认证是Sun Microsystems(已被Oracle收购)提供的Java程序员资格认证之一。它主要针对的是Java平台的标准版(Java SE),其目标是验证开发者对于Java编程语言的理解和应用能力。310-055是SCJP 5.0考试的一个代码...
1. **高技能(JAVA)(三级)鉴定方案.doc**:这可能是一个关于Java编程的高级技能鉴定指南,其中详细列出了三级(可能是指难度级别)的技能要求和评估标准,帮助考生了解如何准备Java相关的专业资格考试。 2. **00_...
【标题】:“软考资料(软件程序员,软件设计师)”是指针对全国计算机技术与软件专业技术资格(水平)考试中的“软件程序员”和“软件设计师”两个级别的考试所准备的学习资源。这类考试旨在评估和认证参与者的...
标签中的"oca"是Oracle Certified Associate的缩写,它是Oracle认证路径的初级阶段,通常作为通往OCP的起点。考生通常先获得OCA认证,再进一步考取OCP,以提升自己的专业水平。 以下是压缩包内文件名称列表,它们...
- discovery.zen.minimum_master_nodes:为了避免脑裂(split-brain)问题,设置一个节点需要看到的具有master节点资格的最小数量,以便进行操作。 - http.cors.enabled和http.cors.allow-origin:允许跨域访问。 ...
他拥有数据库和应用服务器管理方面的OCP资格,以及长达25年的IT从业经验,曾撰著过多本技术书籍并发表了大量的技术论文。 Roopesh Ramklass是一名熟悉多种环境的Oracle专家。他创办了自己的咨询公司,作为一名独立...
程序员考试,作为一项针对计算机编程能力的资格认证,旨在检验应试者在编程语言、算法设计、软件工程、数据库管理等多方面的能力。历年来的程序员考试原题及答案是备考者的重要参考资料,能够帮助考生了解考试的命题...
这份作业不仅帮助学习者为即将到来的期中考试做好准备,也是为硕士资格认证考试积累材料的好方式。通过解决这些题目,学习者能够加深对图论、动态规划和算法分析等重要计算理论的理解,并提高解决实际问题的能力。
这通常是指国家或行业认可的资格认证考试,例如软考(全国计算机技术与软件专业技术资格(水平)考试)、CCNA、Java认证等,目的是评估个人在编程语言、算法、数据结构、操作系统、网络、数据库管理等领域的知识和...