每当我使用new File()
在不使用绝对路径的情况下在servlet中读取或写入文件时,我得到的路径都在eclipse文件夹中。我不知道发生了什么。有没有人对我面临的问题有任何想法。
答案 0 :(得分:2)
基本上你不应该只使用servlet中的相对文件名:servlet容器将为你提供某些目录位置的映射,如果你需要其他任何东西,你应该在servlet参数中指定它。
例如,请查看ServletContext.getRealPath
。
如果你可以告诉我们更多关于你要做什么的事情,那会有所帮助。
答案 1 :(得分:2)
如果是用于读取配置文件,则应使用ServletContext.getResourceAsStream(java.lang.String path)
,该方法将从您引用的资源返回一个InputStream,我建议您将这些文件保存在WEB-INF文件夹下。
如果你想写文件,你应该总是提供(最好是在一个可配置的位置)你需要写入的目录的绝对路径,并确保它存在并具有这种操作的适当权限。 / p>
答案 2 :(得分:0)
这是因为eclipse的默认工作目录是项目文件夹。如果你想使用相对路径在指定的文件夹中写入文件,我建议你这样做:
这意味着您的项目假装在指定目录中运行。
希望我能帮助你好运。