Jakarta ee 在应用程序运行时编辑WEB-INF中的资源
我能够获得WEB-INF文件夹中资源的输入流,如下所示:Jakarta ee 在应用程序运行时编辑WEB-INF中的资源,jakarta-ee,servlets,jsf-2,Jakarta Ee,Servlets,Jsf 2,我能够获得WEB-INF文件夹中资源的输入流,如下所示: ExternalContext externalContext = facesContext.getExternalContext(); InputStream in = externalContext.getResourceAsStream("/WEB-INF/config.xml"); 现在我想在运行时编辑此文件,但我不知道如何覆盖该文件。 有没有比创建到绝对路径的FileOutputStream更好的方法?即使没有
ExternalContext externalContext = facesContext.getExternalContext();
InputStream in = externalContext.getResourceAsStream("/WEB-INF/config.xml");
现在我想在运行时编辑此文件,但我不知道如何覆盖该文件。
有没有比创建到绝对路径的FileOutputStream更好的方法?即使没有,我仍然需要一种方法来获取文件的绝对路径(WEB-INF文件夹的绝对路径) 对于具体问题,您可以获得文件的绝对路径,如下所示:
ExternalContext externalContext = facesContext.getExternalContext();
String realPath = externalContext.getRealPath("/WEB-INF/config.xml");
FileOutputStream output = new FileOutputStream(realPath);
// ...
至于具体的功能要求,可能存在两个主要问题:
getRealPath()
将返回null
。这样就没有物理磁盘文件系统路径。无法获得指向内存中位置的“文件路径”