Java几种路径的获取

各位朋友,相信大家都知道,在web项目中的默认路径总是例如这种:

D:\JavaWebG工具软件\新建文件夹\eclipse-jee-kepler-sr1-win32\Work\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\HomeWork6_16\

其实我们往往要写入的真实路径并不是这个,那为什么在上传文件和写入数据的时候,总是会写入到这个路径呢??

这其实是eclipes在作怪,他会默认把当前的工作项目拷贝到例如上面的那个路径里,那么我们想要写入到我的工作目录下面应该怎么做呢?

相信大家也看出来了,相比自己的工作路径,它似乎只是中间多了一节“\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps”,

既然这样,那我们是不是可以吧这个路径看着字符串的形式,然后把多余的地方截取掉呢?

事实证明是可以的,那么下面就写了一个例子;

那么我们可以把它封装成一个方法来专门用来获取路径!

public String getWebPath() {
        String path=String path=getServletContext().getRealPath("/");    //这已不是获得默认的路径;
        int index=path.indexOf(".metadata");
        String webPath=path.substring(1,index-1).replace('/', '\\')+getServletContext().getContextPath()+"/WebContent/";     //这一步是把多余的路径不要,然后拼凑成你想要的路径;
        return webPath;
    }

String path = getServletContext().getRealPath("/");
这将获取web项目的全路径
例如:E:\eclipseM9\workspace\tree\ tree是我web项目的根目录

this.getClass().getClassLoader().getResource("/").getPath();
这将获取到classes目录的全路径
 例如   E:\eclipseM9/workspace/tree/WEB-INF/classes/
这个方法也可以不在web环境里确定路径,比较好用

request.getContextPath();
获得web根的上下文环境
如/tree www.2cto.com tree是我的web项目的root context

/*jsp 取得当前目录的路径
path=request.getRealPath("");

当然了,以上的都是java web项目的获取办法;

最好获取的就是JAVA类中的工作路径了;

System.getProperty("user.dir");

就这样就可以获得你的工作路径了,简单吧!

 

以上是我综合我学习中的一些总结,希望各位给予建议和意见;

 

posted @ 2016-06-18 17:04  赤恩吉烨  阅读(444)  评论(0编辑  收藏  举报