首页 > 技术文章 > 在新建FileInputStream时使用当前相对路径或者绝对路径作为参数的问题

zouqin 2016-03-22 10:47 原文

  今天在写一个关于配置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

 

推荐阅读