博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算类路径,计算Servlet上下文路径
阅读量:5838 次
发布时间:2019-06-18

本文共 3777 字,大约阅读时间需要 12 分钟。

hot3.png

 

---------------------取Servlet上下文路径,取WebContent的路径 --------------------------------

1、String path = request.getRealPath("/cfg.xml")  (已不建议使用)
2、String path = request.getSession().getServletContext().getRealPath("/cfg.xml");
---------------------读取类路径中的文件 --------------------------------

一、getResource方法

 

//获取类的根路径classes/(重要)

URL s2 = Test.class.getResource("/");

String path2=s2.getPath();//如果路径有空格会使用 %20替代

 

//获取Test.class类文件所在的路径(重要)

URL s3 = Test.class.getResource("");

String path3=s3.getPath(); //如果路径有空格会使用 %20替代

 

//  %20 转换为 空格(方案二)

String path4=s2.toURI().getPath(); //s2是URL s2
System.out.println(path4);

 

//  %20 转换为 空格(方案二)

String path="file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/server-node.properties";

path = java.net.URLDecoder.decode(path, "UTF-8");
System.out.println(path);

 

二、getResourceAsStream方法

 

//在classes目录找文件a.txt

InputStream is = Test.class.getResourceAsStream( "/a.txt"); 

 

//在ReadCard类所在目录找文件a.txt

InputStream is = Test.class.getResourceAsStream( "a.txt");

 

----------------------取类路径测试代码 -------------------------------

package com.hc360.config.util;import java.io.InputStream;import java.net.URISyntaxException;import java.net.URL;// Test.class类文件实际路径是:E:/workspace3.6/configure huido/web/WEB-INF/classes/com/hc360/config/util/Test.class// 配置文件的实际路径是E:\workspace3.6\configure huido\web\WEB-INF\classes\server-node.properties// 注意configure huido中间有一个空格// 下面开始测试,读取类路径中的文件public class Test {	public static void main(String[] args) throws Exception {		//--------------取path-----------------------		// 获取类的根路径classes/(重要)		// 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/		// 参数也可以是:"/com/a.txt",在/com/目录下找文件a.txt		URL s2 = Test.class.getResource("/");		System.out.println(s2);		// 获取Test.class类文件所在的路径(重要)		// 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/com/hc360/config/util/		URL s3 = Test.class.getResource("");		System.out.println(s3);		// 从来都是null		// 结果:null		URL s4 = Test.class.getClassLoader().getResource("/");		System.out.println(s4);		// 获取类的根路径classes/		// 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/		URL s5 = Test.class.getClassLoader().getResource("");		System.out.println(s5);		// 获取类的根路径classes/		// 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/		URL s6 = Thread.currentThread().getContextClassLoader().getResource("");		System.out.println(s6);				//--------------取流InputStream-----------------------		// 从类的根路径classes/下读取配置文件(重要)		// 参数也可以是:"/com/a.txt",在/com/目录下找文件a.txt		InputStream is = Test.class.getResourceAsStream("/server-node.properties");		System.out.println("InputStream is:" + (is == null ? "null" : "not null"));		// 在Test类所在目录找文件(重要)		// 要在classes/com/hc360/config/util/下有server-node.properties文件,就可以读出来		// 获取Test.class类文件所在的路径,读取配置文件(实际没有配置文件,所以返回null)		InputStream is7 = Test.class.getResourceAsStream("server-node.properties");		System.out.println("InputStream is:" + (is7 == null ? "null" : "not null"));		// 从来都是null		InputStream is2 = Test.class.getClassLoader().getResourceAsStream("/server-node.properties");		System.out.println("InputStream is:" + (is2 == null ? "null" : "not null"));		// 从类的根路径classes/下读取配置文件		InputStream is3 = Test.class.getClassLoader().getResourceAsStream("server-node.properties");		System.out.println("InputStream is:" + (is3 == null ? "null" : "not null"));		//-------------------%20 转换为 空格--------------------		//  %20 转换为 空格		// 结果:file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/		String path5=s2.toURI().toString();		System.out.println(path5);		    	String path="file:/E:/workspace3.6/configure%20huido/web/WEB-INF/classes/server-node.properties";    	path = java.net.URLDecoder.decode(path, "UTF-8");    	System.out.println(path);	}}

 

 

转载于:https://my.oschina.net/pangzhuzhu/blog/317948

你可能感兴趣的文章
NGINX + PHP-FPM 502
查看>>
mysql数据备份与恢复
查看>>
Openstack API常用命令
查看>>
OpenSSL漏洞凶猛来袭 慧眼恶意代码监测应对有方
查看>>
C语言 喝汽水问题
查看>>
LINUX中搭建DNS服务器,实现正向、反向以及访问不同DNS解析
查看>>
SCCM2012 R2实战系列之十:解决WDS服务无法启动问题(错误1067:进程意外终止)...
查看>>
怎么防止重复发送Ajax
查看>>
ubuntu 下安装 mysql
查看>>
关于k-means聚类算法的matlab实现
查看>>
Git分支2
查看>>
一键安装Gitlab后的备份、迁移与恢复
查看>>
因为本人工作繁忙,精力有限,本博客停止更新。有兴趣的博友可以关注我在CSDN上的主博客...
查看>>
SQL server查看触发器是否被禁用
查看>>
[C++基础]在构造函数内部调用构造函数
查看>>
跟随我在oracle学习php(8)
查看>>
Spring 3.1.0 Hibernate 3.0 Eclipse Spring WEB例子
查看>>
使用Unicode写文本文件:一个简单类的示例
查看>>
UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理
查看>>
求两个集合的交集,并集,差集
查看>>