从servlet读取外部文件

时间:2012-02-22 07:03:39

标签: java eclipse servlets

每当我使用new File()在不使用绝对路径的情况下在servlet中读取或写入文件时,我得到的路径都在eclipse文件夹中。我不知道发生了什么。有没有人对我面临的问题有任何想法。

3 个答案:

答案 0 :(得分:2)

基本上你不应该只使用servlet中的相对文件名:servlet容器将为你提供某些目录位置的映射,如果你需要其他任何东西,你应该在servlet参数中指定它。

例如,请查看ServletContext.getRealPath

如果你可以告诉我们更多关于你要做什么的事情,那会有所帮助。

答案 1 :(得分:2)

如果是用于读取配置文件,则应使用ServletContext.getResourceAsStream(java.lang.String path),该方法将从您引用的资源返回一个InputStream,我建议您将这些文件保存在WEB-INF文件夹下。

如果你想写文件,你应该总是提供(最好是在一个可配置的位置)你需要写入的目录的绝对路径,并确保它存在并具有这种操作的适当权限。 / p>

答案 2 :(得分:0)

这是因为eclipse的默认工作目录是项目文件夹。如果你想使用相对路径在指定的文件夹中写入文件,我建议你这样做:

  1. 转到eclipse中的“运行”菜单
  2. 选择“运行配置...”
  3. 点击“参数标签”
  4. 在参数选项卡下设置工作目录。选择“其他”并指定目录。
  5. 这意味着您的项目假装在指定目录中运行。

    希望我能帮助你好运。