在新建FileInputStream时使用当前相对路径或者绝对路径作为参数的问题
今天在写一个关于配置Excel导出路径通过properties文件配置的需求,通过查询我得知 properties文件通过 FileInputStream 读取
这是原先的代码,在上面的路径中,经过反复试验始终报路径未找到错误。
然后我通过 http://blog.csdn.net/jiadebin890724/article/details/7404554 这篇文章的启发查看了一下我的当前目录路径
控制台输出如下路径
结果是tomcat的bin目录,而并不是tomcat里所部属的webservice目录,遂修改如下:
更新2016/4/25:
以上路径在linex系统中会识别不出,这个问题是项目部署时发现的,跟新方式是使用java.io.File.separator在“/”或“\\”处替换。
1 public UpLoadFileTask(){ 2 try { 3 this.prop = new Properties(); 4 FileInputStream fis = new FileInputStream(".."+File.separator+"webapps"+File.separator+"dm"+File.separator+"WEB-INF"+File.separator+"classes"+File.separator+"upFile.properties"); 5 this.prop.load(fis); 6 } catch (Exception e) { 7 System.out.println("读取属性文件失败"); 8 e.printStackTrace(); 9 } 10 }
所以说,当作为webservice部署到tomcat里时,若想使用当前目录,最好先使用System.out.println(new File(".").getAbsolutePath());查看一下当前目录是什么,因为他不一定是你的.class文件存放的目录,通常是
tomcat的bin目录,所以需要根据这个目录重新指定你想要到达的目录。
在此感谢 http://blog.csdn.net/jiadebin890724/article/details/7404554 GeekFans