0

java.io.FileGAE アプリからアクセスできない (制限付き) とのことですが、しかし、どこかで、WAR 内のあらゆるもの (おそらくWEB-INF/? の下のあらゆるもの) にアクセスできることを読んだことを覚えています。

そこで質問します。GAE アプリから WAR 内のファイルにアクセスする方法はありますか? つまり、次の構造の WAR をデプロイすると、次のようになります。

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

        my-special-config.xml

my-special-config.xmlGAE アプリ内から読み取る方法はありますか? もしそうなら、どのように、どのクラスで?GAE SDK に があり、AppEngineFileこれを使用できるかどうか疑問に思っています。前もって感謝します。

4

2 に答える 2

3

ここで開発ガイドをチェックしてください:

ファイルシステム

Java アプリケーションは、java.io.FileWriter など、ファイルシステムへの書き込みに使用されるクラスを使用できません。アプリケーションは、java.io.FileReader などのクラスを使用して、ファイルシステムから独自のファイルを読み取ることができます。アプリケーションは、 Class.getResource()ServletContext.getResource()などを使用して、独自のファイルに「リソース」としてアクセスすることもできます。

「リソース ファイル」と見なされるファイルのみが、ファイル システム経由でアプリケーションにアクセスできます。デフォルトでは、WAR 内のすべてのファイルは「リソース ファイル」です。appengine-web.xmlファイルを使用して、このセットからファイルを除外できます。

POJO クラスのクラスパスの下にあるリソース ファイルを読み取るサンプル コード:

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

サーブレット クラスのクラスパスの下にあるリソース ファイルを読み取るサンプル コード:

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 に答える