如何在/ WEB-INF /下创建文件

时间:2013-08-30 09:57:33

标签: file servlets web-inf

我正在开发一个将文件存储在/ WEB-INF / someFolder /下的应用程序。但我找不到在此文件夹下创建文件的正确方法。我这样做了,但它没有用:

        File newFile = new File("/WEB-INF/fileName.xml");

当我尝试检查创作时:

        boolean isCreated = newFile.createNewFile();

我明白了:

        java.io.IOException: No such file or directory

请帮助我以正确的方式做到这一点。

更新 我做了这个解决方法,它正在工作,但我没有看到它是高性能的解决方案。

        ServletContext servletContext = getServletContext();
        String path = servletContext.getRealPath("/WEB-INF/");
        File newFile2 = new File(path+"/fileName.xml");

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

您应使用ServletContext.getRealPath(String)并手动构建整个类路径

String webInfPath = getServletConfig().getServletContext().getRealPath("WEB-INF");

或者一步一步走:

ServletConfig scfg= getServletConfig();
ServletContext scxt = scfg.getServletContext();
String webInfPath = sxct.getRealPath("WEB-INF");

然后使用webInfPath在WEB-INF

中创建File对象
File newFile = new File(webInfPath + "/fileName.xml");

答案 1 :(得分:2)

确保您的applaction具有写入权限。 你可以得到这样的道路:

String path=Thread.currentThread().getContextClassLoader().getResource("com/youpackage/");

现在您获得了类文件夹路径的路径,因此您可以获取WEB-INF路径。 ps:我记得在创建文件时你必须编写一些内容,否则它可能无法创建。