在新建FileInputStream时使用当前相对路径或者绝对路径作为参数的问题

       今天在写手机与PC的webservice(用axis2实现的)传输图片的程序,服务端是一个类,编译后直接部署在axis的pojo文件夹里,当我new一个FileInputStream时,想使用相对路径这样无论我的服务端部署到哪里,都可以一直用一个文件夹而不必修改程序的路径代码,当然首先我用的绝对路径来做实验,保证能够成功通信,使用绝对路径时要注意路径的分隔符可以用“/”或者“\\”,而这也可以混用,如下:

FileInputStream fis=new FileInputStream("D:/images/"+id+".jpg");
或者
FileInputStream fis=new FileInputStream("D:\\images\\"+id+".jpg");
都行。
甚至可以/与\\混合使用。

然后我想用相对路径了,但是当我将images这个文件夹与我的.class文件(即要执行的webservice)放在同一个目录里时,发现运行失败了,提示找不到这个文件夹,代码如下:

FileInputStream fis=new FileInputStream("images/"+id+".jpg");

然后我就用System.out.println(new File(".").getAbsolutePath());打印了一下当前目录

结果是tomcat的bin目录,而并不是tomcat里所部属的webservice目录,遂修改如下:
FileInputStream fis=new FileInputStream("../webapps\\axis2\\WEB-INF/pojo/images/"+id+".jpg");

注意:../表示当前目录的上一级目录。

所以说,当作为webservice部署到tomcat里时,若想使用当前目录,最好先使用System.out.println(new File(".").getAbsolutePath());查看一下当前目录是什么,因为他不一定是你的.class文件存放的目录,通常是

tomcat的bin目录,所以需要根据这个目录重新指定你想要到达的目录。

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值