0

我了解您无法java.io.File从 GAE 应用程序(受限)访问。但是,我记得在某处读过它可以访问 WAR 中的任何内容(可能是 WAR 下的任何内容WEB-INF/?)。

所以我问:有没有办法从 GAE 应用程序访问 WAR 中的文件?换句话说,如果我部署具有以下结构的 WAR:

MyApp/
    WEB-INF/
        web.xml
        appengine-web.xml
        ...etc.

        my-special-config.xml

我有什么方法可以my-special-config.xml从我的 GAE 应用程序中阅读吗?如果是这样,如何以及使用什么课程?我在 GAE SDK 中看到有一个AppEngineFile,并且想知道我是否可以使用它。提前致谢。

4

2 回答 2

3

在此处查看开发指南:

文件系统

Java 应用程序不能使用任何用于写入文件系统的类,例如 java.io.FileWriter。应用程序可以使用 java.io.FileReader 等类从文件系统中读取自己的文件。应用程序还可以将自己的文件作为“资源”访问,例如使用Class.getResource()ServletContext.getResource()

应用程序只能通过文件系统访问被视为“资源文件”的文件。默认情况下,WAR 中的所有文件都是“资源文件”。您可以使用appengine-web.xml文件从该集合中排除文件。

POJO类中classpath下读取资源文件的示例代码:

String file = "/WEB-INF/my-special-config.xml";
InputStream in = getClass().getResourceAsStream(file);

Servlet类中classpath下读取资源文件的示例代码:

String file = "/WEB-INF/my-special-config.xml";
InputStream in = getServletContext().getResourceAsStream(file);
于 2013-02-20T02:18:49.007 回答
1

似乎您可以像这样使用 File 类:

    String FileName = "my-special-config.xml";
    File file = new File(FileName);
    BufferedReader bufferedReader = new BufferedReader(new FileReader(file));

看到这个

于 2013-02-19T23:38:21.707 回答