Google App Engineにテキストファイルを置いておいて、それを読み込みたいことってありますよね? ありませんかね。。。
ファイル書き出しはできないけれど、読み出しはできるみたいなことは書いてあるのですが、どこにどうおいて、ファイルパスはどうなるのかがいまいちわかりませんでした。
今日わかりました。
どうでもよい話ですが、私の失敗談をひとつご披露。
わからない間は、String data = "……"; で、ものすごい長い文字列を書いていました……
その文字列の中に"とかエスケープしないといけない文字があったりするので、生データをエスケープするためのプログラムを書いたりしていました……
その変換プログラムがバグだらけで、データが増えるたびに、変換プログラムで不都合が発生して……
まあ、たぶんGAEにテキストファイルを置きたいという時点で根本を間違えている気がしないでもないのですが…… とまれ、余談でした。
まずファイルは、war/ の下に格納します。
たとえば、war/data/test.txt みたいな感じです。
読み出し処理は、
ServletContext context = super.getServletContext(); // HttpServletインスタンスです
URL url = context.getResource("/data/test.txt"); // warから下のパスで書きます。
FileInputStream is = new FileInputStream(url.getPath());
FileInputStreamのインスタンスが得られたここから先は、「とほほのJava入門」様がとても参考になります。
よく参考にさせてもらっています。ありがとうございます!
追記
ここに似た話が書いてありました。
0 件のコメント:
コメントを投稿