1

我正在创建一个 FileOutputStream 对象。它在其构造函数中将文件或字符串作为参数。

我的问题是,我可以给它一个相对 URL 作为文件位置的参数吗,它似乎不起作用,但我正在努力解决这是否可能(如果不是我将停止尝试) .

如果不可能,我如何(从 servlet)获取到当前位置的绝对路径(在文件系统上,而不是逻辑 URL),以便我可以将其传递给构造函数。

我的部分问题是我的开发盒是 Windows,但我会将它发布到 Unix 盒,所以路径不能相同,即在 Windows C:/.... 和 unix /usr/...

4

3 回答 3

3

ServletContext.getRealPath(relativePath)

于 2010-04-07T07:00:21.423 回答
2

这应该适用于相对路径,但要注意当前目录是什么。例如,如果您使用 Eclipse,则当前目录是项目目录(而不是包含类的目录)。

于 2010-04-07T07:04:05.370 回答
1

从文件 javadoc:

相反,相对路径名必须根据从其他路径名获取的信息来解释。默认情况下,java.io 包中的类总是根据当前用户目录解析相对路径名。此目录由系统属性 user.dir 命名,通常是调用 Java 虚拟机的目录。

编辑: Bozho 是对的,我没有读到这是一个 servlet。我听从他的回答:

ServletContext.getRealPath(relativePath)

于 2010-04-07T06:59:36.103 回答