FileOutputStream构造函数在tomcat的temp文件夹中查找文件对象而不是堆

时间:2017-08-04 13:49:22

标签: java tomcat

在我的程序中,我正在创建一个带有文件名的文件类对象。在写完之后我将使用上面的文件对象创建一个FileOutputStream对象。

File file = new File("mod.properties");
FileOutputStream fileOut = new FileOutputStream(file);

当它在tomcat服务器上运行时,它正在寻找'文件' temp文件夹中的对象。而不是堆。并不是每个tomcat服务器都会发生这种情况,但很少发生。

  

[无法从文件夹路径中获取模型   /opt/tomcat/temp/1501748741522-0][STACK][java.io.FileNotFoundException:   mod.properties(没有这样的文件或目录)在   java.io.FileOutputStream.open0(Native Method)at   java.io.FileOutputStream.open(FileOutputStream.java:270)at   java.io.FileOutputStream。(FileOutputStream.java:213)at   

的java.io.FileOutputStream。(FileOutputStream.java:162)

1 个答案:

答案 0 :(得分:0)

来自java.io.File的javadoc: "绝对路径名是完整的,因为不需要其他信息来定位它表示的文件。相反,相对路径名必须根据从其他路径名获取的信息来解释。默认情况下,java.io包中的类始终解析当前用户目录的相对路径名。此目录由系统属性user.dir命名,通常是调用Java虚拟机的目录。"

您在构建File时设置了相对路径名,因此您可以在这里获得答案:这些实例具有不同的属性/设置。