Java中的路径问题


需要upload的时候指定上载路径,当然路径不能写成绝对路径了。

还不太了解java中相对路径的写法,所以找了很多种方法,试了很多方法后最后成功了,把经验写下来。

和linux中一样 "../"表示上层路径 "./"表示当前路径

我要上载的路径在 "/webContent/res/upload/"这个文件夹,开始我用"../../res/upload"来实现,但是后来发现这种方法是针对

用户当前路径的上层路径,虽然可以用这种方法实现上载,但是没有可移植性,到其他机器上就会出错了,这点很关键,不小心就

会弄错了。

之后用的是System.getProperty("user.dir")返回相对于当前用户目录的相对路径。其实效果跟上面的方法是一样的,不符合

我的要求。

后来又找了一种方法  getResource和getResourceAsStream

ClassLoader提供了两个方法用于从装载的类路径中取得资源:
  public URL getResource(String name);
  public InputStream getResourceAsStream(String name);

这里name是资源的类路径,它是相对于“/”根路径下的位置。getResource得到的是一个URL对象来定位资源,而


getResourceAsStream取得该资源输入流的引用保证程序可以从正确的位置抽取数据。我用的是


classname.class.getResource("/")来得到项目的根路径的,但是这样写并不能实现指向我所需要的指定盘符下的文件夹的目


的。


之后在csdn的一篇帖子里找到了办法,帖子是《求助啊:我在WEB.xml中配置的servlet需要传配置文件的相对路径,老是


出错啊? [已结贴,结贴人:hackler]》


http://topic.csdn.net/u/20070307/13/503c789c-8939-4e6a-8613-effbc05729d3.html


通过getServlet().getServletContext().getRealPath("")可以得到目录的绝对路径

再根据我的具体情况改成getServlet().getServletContext().getRealPath("/res/upload/")就可以实现了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值