java获得文件路径

获得文件的方法有很多,这里就记录几个简单实用的

1 在action里面如果获取路径

//在action里面获取到request并且得到路径(参数加/值最后就多了个\)
HttpServletRequest request = ServletActionContext.getRequest();
String realPath1 = request.getSession().getServletContext().getRealPath("/"); 
System.out.println(realPath1);//D:\apache-tomcat-6.0.16\webapps\AnliDemo02\
//得到classes根目录
String path2=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println(path2);//"/D:/apache-tomcat-6.0.16/webapps/AnliDemo02/WEB-INF/classes/"
//得到classes根目录
String path3=ShowAllAction.class.getClassLoader().getResource("").getPath();
System.out.println(path3);//"/D:/apache-tomcat-6.0.16/webapps/AnliDemo02/WEB-INF/classes/"
//得到类所在的目录
String path4=ShowAllAction.class.getResource("").getPath();
System.out.println(path4);//"/D:/apache-tomcat-6.0.16/webapps/AnliDemo02/WEB-INF/classes/net/hncu/action/"

2在普通java文件里面

package pathtest;

public class PathTest {
	
	public static void main(String[] args) {
		
		//一 相对路径的获得
		//说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
		//上述相对路径中,java项目中的文件是相对于项目的根目录
		//web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)
		String relativelyPath=System.getProperty("user.dir"); 
		System.out.println(relativelyPath);//D:\NewWorkSpace\SampleWebTest
		
		//二 类加载目录的获得(即当运行时某一类时获得其装载目录)
		//1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
		//(books.xml文件的路径为 项目名\src\books.xml;类PathTest所在包的第一级目录位于src目录下)
		String path2 = PathTest.class.getClassLoader().getResource("books.xml").toString(); 
		System.out.println(path2);
		//file:/D:/NewWorkSpace/SampleWebTest/WebRoot/WEB-INF/classes/books.xml
		
		//1.2)通过方法二
		//(books.xml文件的路径为 项目名\src\books.xml,类PathTest所在包的第一级目录位于src目录下)
		String path3 = PathTest.class.getResource("/books.xml").toString(); 
		System.out.println(path3);
		//file:/D:/NewWorkSpace/SampleWebTest/WebRoot/WEB-INF/classes/books.xml
	}

}

 3在jsp中获得路径

<%=application.getRealPath("") %>// "D:\apache-tomcat-6.0.16\webapps\AnliDemo02"
	${pageContext.request.contextPath}// "/AnliDemo02"

 

你可能感兴趣的:(java path)